我有一个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
答案 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列(是的,反过来)并删除任何没有数据的。
享受。