/ / Wählen Sie einige Spalten und löschen Sie andere VBA - Excel, vba, excel-vba

Wählen Sie einige Spalten und löschen Sie andere VBA - Excel, VBA, Excel-VBA

Ich versuche, Spalten mit nur bestimmten Titeln auszuwählen und alle anderen zu löschen. Ich erhalte jedoch einen Fehler. Es ist ein Method "Range" of object "_Global" failedund hebt die siebte Codezeile hervor (Range(Cells(1, Col)).Select). Jede Hilfe oder Anregungen wäre sehr dankbar - Danke!

       Dim Col As Integer
Col = 1
Range("A1").Select
While Selection.Value <> ""
If Selection.Value = "A" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "B" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "D" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "E" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "F" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "H" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "J" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "M" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "N" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "P" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "R" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "S" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "T" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "V" Then
Col = Col + 1
Range(Cells(1, Col)).Select
ElseIf Selection.Value = "X" Then
Col = Col + 1
Range(Cells(1, Col)).Select
Else: ActiveCell.EntireColumn.Delete
End If
Wend

Antworten:

2 für die Antwort № 1

Erstens wird der Fehler durch das Aufrufen von Range mit nur einem Cell-Argument verursacht. Wenn Sie nur eine Zelle haben, müssen Sie die Zelle mit ihrer Address-Eigenschaft anfügen, damit die Zeile angezeigt werden sollte Range(Cells(1,col).Address).Select

Zweitens von dem, was Sie beschrieben habenIch glaube nicht, dass Ihr Code so funktioniert, wie Sie es möchten. Um ehrlich zu sein, kann ich nicht wirklich sagen, was Sie aus dem Code selbst versuchen. Machen Sie sich also klar, dass meine Antwort den Fehleraufruf korrigieren wird. Es ist jedoch wahrscheinlich, dass er nicht so läuft, wie Sie es erwarten läuft


2 für die Antwort № 2

Sie können auch die if -Anweisung durch Einfügen von or in deinem Fragenteil.

With Selection
If .Value = "A" or "B" or...  ...Then...

Else...

End If
End With

Hoffe das hilft - https://msdn.microsoft.com/en-us/library/752y8abs.aspx