比如表头(A行)单元格对应张三,李四,王五,钱六,赵九……
实际只需保留张三、王五、钱六。
打算声明一个数组[张三、王五、钱六],然后如果不在数组里面,就把对应的列删除掉。
用VBA代码如何删除了?
Sub test()
Dim arr
Dim i, j As Integer
Dim flag As Boolean
arr = Array("张三", "王五", "钱六")
flag = True
i = 1
Do While Cells(1, i) <> ""
For j = 0 To UBound(arr)
If Cells(1, i) = arr(j) Then
flag = False
Exit For
End If
Next j
If flag Then
Columns(i).Delete
i = i - 1
End If
flag = True
i = i + 1
Loop
End Sub
Sub delCol()
Dim sht As Worksheet
Dim arr
Dim lCol As Long
Dim i As Long
Dim j As Long
Dim k As Long
Set sht = ActiveSheet
arr = Split("张三、王五、钱六", "、")
lCol = sht.UsedRange.Column + sht.UsedRange.Columns.Count - 1
For i = lCol To 1 Step -1
For j = LBound(arr) To UBound(arr)
If arr(j) = sht.Cells(1, i) Then
sht.Cells(1, i).EntireColumn.Delete
k = k + 1
Exit For
End If
Next j
Next i
Set sht = Nothing
MsgBox Format(k, "完成 共删除了0列")
End Sub