以下是一个示例代码,它遍历Excel VBA的Z列到A列,如果列标题与给定的一组值不匹配,则删除该列:
Sub DeleteColumns()
Dim rng As Range
Dim col As Range
Dim deleteCols As String
Set rng = Range("Z1:A1") ' 设置要遍历的范围
' 设置给定的一组值
Dim givenValues() As Variant
givenValues = Array("Value1", "Value2", "Value3")
For Each col In rng
' 检查列标题是否匹配给定的一组值
If Not IsError(Application.Match(col.Value, givenValues, 0)) Then
' 如果匹配,则跳过该列
GoTo SkipColumn
Else
' 如果不匹配,则将列标题存储到字符串中
deleteCols = deleteCols & col.Address & ","
End If
SkipColumn:
Next col
' 删除最后一个逗号
deleteCols = Left(deleteCols, Len(deleteCols) - 1)
' 如果有需要删除的列,则删除它们
If Len(deleteCols) > 0 Then
Range(deleteCols).EntireColumn.Delete
End If
End Sub
请注意,上述代码假设列标题位于第一行(行1)。您可以根据需要修改此代码以适应您的实际情况。