1

我有一个 CSV 文件,其中有很多空列。我有 Excel 2010 女士,但我不知道如何使用宏或排序功能。

我已经进行了谷歌搜索并按照步骤操作。他们没有帮助我。有人可以指导我逐步删除空列吗?

编辑:

抱歉,我不知道这个网站是如何运作的。我很难通过我的网络搜索历史找到正确的链接,因为我整天都在搜索。

但是我的历史中有一些链接对像我这样的类似人很有帮助(但不是我:()

http://www.addictivetips.com/windows-tips/how-to-delete-remove-blank-rows-columns-in-excel-2010-spreadsheet/ http://www.mrexcel.com/archive/VBA/ 11225.html

4

2 回答 2

4

这是一个宏,它将遍历所有列,从包含任何数据的最后一个列到第一个列,并删除其中没有任何内容的所有列:

Sub DeleteEmptyColumns()

    Dim lastColumn As Integer
    Dim lastRow As Integer
    Dim i As Integer
    Dim r As Range

    Set r = ActiveSheet.Cells.Find("*", SearchOrder:=xlByColumns, LookIn:=xlValues, SearchDirection:=xlPrevious)

    If Not r Is Nothing Then

        lastColumn = r.Column

        For i = lastColumn To 1 Step -1

            Set r = ActiveSheet.Columns(i).Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious)

            If r Is Nothing Then
                ActiveSheet.Columns(i).Delete
            Else
                If r.Row = 1 Then
                    ActiveSheet.Columns(i).Delete
                End If
            End If

        Next i

    End If

End Sub

另外:如果工作表中没有任何内容,它不会崩溃,并且您不必将自己限制在一定数量的列中,它会自动检查所有列。

编辑:修改为跳过第一行并忽略任何标题。

于 2012-12-14T23:25:16.787 回答
2

假设你有类似的东西:

1,,,,4,55,,92,,,,,,,,,62,
3,,,,7,43,,12,,,,,,,,,74,
7,,,,3,58,,52,,,,,,,,,64,
0,,,,6,10,,22,,,,,,,,,96,
3,,,,8,13,,92,,,,,,,,,22,

对于您的 CSV 文件,您想要在 Excel 2010 中执行以下操作:
1. 保存文件的副本(以防万一您在此处出错)
2. 按 Alt+F11
3. 双击 Sheet1(Book1 ) - 或任何您的工作表名称。(它在 Microsoft Excel 对象下
。4. 将此代码复制并粘贴到名为 Book1.csv - Sheet1 (Code) 的窗口中

Sub showMessage()
    Dim cChar As String
    Dim Index As Integer
    For Index = 0 To 25
        cChar = Chr(90-Index)
        if Application.WorksheetFunction.CountA(Columns(cChar)) = 0 Then
            Columns(cChar).EntireColumn.Delete
        End If
    Next Index
End Sub

5. 单击顶部工具中的绿色箭头。(或者,按 F5) 注意,您可能需要修改的值是“25”和“90”。这些与从 ASCII 转换为字符有关。如果你愿意,你可以玩弄它。

这样做是查看 Z 到 A 列(是的,相反)并删除其中没有数据的任何列。

享受。

于 2012-12-14T23:13:07.363 回答