删除Ms Excel 2010中的空列

时间:2012-12-14 22:32:14

标签: excel csv multiple-columns

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

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

已编辑:

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分: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 Objects下 4.将此代码复制并粘贴到名为Book1.csv - Sheet1(代码)

的窗口中
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列(是的,反过来)并删除任何没有数据的。

享受。