我已将下面的内容放在一起,但我对VBA并不熟悉,所以它显然不起作用。
Sub DeleteUneededColumn()
Dim FindString As String
Dim Rng As Range
FindString = "Type"
If Trim(FindString) <> "" Then
With Sheets("page 1").Range("A:ZZ")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Rng Is Nothing Then
Rng.EntireColumn.Delete
End If
End With
End If
End Sub
根据标题,它需要找到多个条件(理想情况是基于我在A1:A3
上的单元格Sheet1
中输入的一些关键字),我试图让它只使用一个但不是喜悦。然后,对于page 1
中不包含这些字词的每一列,请删除该列。
我理解.Find
将成为其中的重要部分,但其余部分则不确定。
答案 0 :(得分:1)
Find返回第一次出现的范围,其中找到了字符串,并且您正在搜索整个范围。
我修改了你的代码,使其逐列,并收集所有未找到字符串的列,然后删除该范围。
Sub DeleteUneededColumn()
Dim FindString As String
Dim Rng As Range
FindString = "C"
Dim rngCol As Range, rngDelete As Range
For Each rngCol In Range("A:ZZ").Columns
Set Rng = rngCol.Find(What:=FindString, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Rng Is Nothing Then
If rngDelete Is Nothing Then
Set rngDelete = rngCol
Else
Set rngDelete = Union(rngDelete, rngCol)
End If
End If
Next
rngDelete.Delete
End Sub