图片上,实发工资项后有挺多的空列在打印预览内是显示的。这些列列宽都是20个像素。 弄了段代码: For i = 1 To 100 If Columns(i).Width < 25 Then Columns(i).Select Columns(i).Delete End If Next 这段代码倒是能删除这些空列,但是删除不完全。运行完毕后只能删除一部分,还是有一部分会保留。 请问这个问题怎么破???
Sub test() For n = 1 To Sheets.Count With Sheets(n) For i = .UsedRange.Columns.Count To 1 Step -1 If .Columns(i).Width < 25 Then .Columns(i).Delete End If Next i End With Next n MsgBox ("已将所有工作表中列宽25以下的列删除") End Sub
For i = 1 To 100 If Columns(i).Width < 25 Then Columns(i).Select Columns(i).Delete End If Next 这是楼主的代码,这个代码本身就有问题,一般来说,循环删除的代码都应该写成递减的(而不是递增),把 1 to 100 改成 100 to 1 step -1 这样也可以解决问题。