如何在 Excel 中将单元格向左移动而不影响其“自己的列”(即通过 VBA)?

如何在 Excel 中将单元格向左移动而不影响其“自己的列”(即通过 VBA)?
COLS : NO |   | B | C |   | D
  01 : 1  |   | 8 | 3 |   | 2
  02 :    |   |   | 4 |   | 
  03 :    |   |   |   |   |
  04 : 2  |   | 5 | 2 |   | 6

如何将值向左移动并删除空行,但让值保留在自己的列中?目标是:

COLS : NO | B | C | D
  01 : 1  | 8 | 3 | 2
  02 :    |   | 4 | 
  03 : 2  | 5 | 2 | 6
  04 :    |   |   |

C2 中的数字 4 应保留在其自己的列中(它是 C 列中记录号 1 的额外值)。我现在得到的不是我想要的:

COLS : NO | B | C | D
  01 : 1  | 8 | 3 | 2
  02 : 4  |   |   | 
  03 : 2  | 5 | 2 | 6
  04 :    |   |   |

答案1

尝试这个:

Sub DeleteEmptyColumns()
  Dim i As Long
  With ActiveSheet
    For i = .Range(.Cells(1, 1), .UsedRange).Columns.Count To 1 Step -1
      If WorksheetFunction.CountA(.Cells(1, i).EntireColumn) = 0 Then
        .Cells(1, i).EntireColumn.Delete
      End If
    Next
  End With
End Sub

前:
之前 - 带有空列

后:
之后 - 删除了空列

相关内容