Ich habe das unten zusammengestellt, aber ich bin nicht vertraut mit VBA, so dass es offensichtlich nicht funktioniert.VBA für mehrere Kriterien zu suchen, und löschen Sie die Spalten, die diese Kriterien nicht enthalten
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
Gemäß dem Titel, braucht es mehrere Kriterien zu finden (Im Idealfall einige Keywords basierend auf I in Zellen A1:A3
auf Sheet1
eingegeben haben), habe ich versucht, es mit nur einem ersten, aber keine Freude zum Laufen zu bringen. Löschen Sie dann für jede Spalte in page 1
, die diese Wörter nicht enthält, diese Spalte.
Ich verstehe .Find
wird ein großer Teil davon sein, aber nicht sicher auf den Rest.
Suche ist in der Regel ein guter Weg zu gehen, aber ich bin in diesem Fall nicht sicher, weil Sie wollen, um die Bereiche zu erfassen, die nicht finden finden, wenn der Sinn macht. Verwenden Sie Find, obwohl Sie FindString in ein Array von Suchbegriffen umwandeln können, durchlaufen Sie sie und notieren Sie die Spaltennummer jedes von Find zurückgegebenen Ergebnisses, und führen Sie am Ende eine Schleife durch, und löschen Sie alle Spalten außer ihnen. Sie müssen Ihren Suchcode anpassen, um mehrere Ergebnisse zurückzugeben. Es gibt viele Beispiele dafür. – SJR