删除空白列

  • A+
所属分类:好好学习

遍历文件夹删除多个工作薄空白列:

VBA
Sub 遍历文件夹删除空白列()
f = Dir(ThisWorkbook.Path & "\*.xlsx") '搜索当前文件夹
Do While f > " "
If f <> ThisWorkbook.Name Then '如果不是当前工作簿
Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & f) '打开工作簿
For j = 1 To wb.Sheets.Count '循环工作表
With wb.Sheets(j)
Dim i%, sh As Worksheet, n&
For Each sh In Worksheets
n = sh.[iv1].End(1).Column
If n > 1 Then
For i = n To 2 Step -1 '不能用For i = 2 To n,删除右列的不会影响左列,而且即使在循环里改变n,也不会中途影响到循环的控制变量n
temp = sh.Cells(65536, i).End(xlUp).Row
If temp = 1 Then
sh.Cells(1, i).EntireColumn().Delete
End If
Next
End If
Next
End With
Next
wb.Close 1         '关闭 Open 语句所打开的输入/输出 (I/O) 文件。
End If
f = Dir
Loop
End Sub

仅删除当前工作表空白列:

VBA:
Sub 删除当前表空白列()
Dim i%, sh As Worksheet, n&
For Each sh In Worksheets
n = sh.[iv1].End(1).Column
If n > 1 Then
For i = n To 2 Step -1 '不能用For i = 2 To n,删除右列的不会影响左列,而且即使在循环里改变n,也不会中途影响到循环的控制变量n
temp = sh.Cells(65536, i).End(xlUp).Row
If temp = 1 Then
sh.Cells(1, i).EntireColumn().Delete
End If
Next
End If
Next
End Sub
  • 版权声明:本站原创文章,于2017年11月12日21:01:48,由 发表,共 817 字。
  • 转载请注明:删除空白列 | 酷吧

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: