2017-05-19 4 views
1

Ich versuche, ein Makro zu schreiben, das die Spalte mit "Est #" in der ersten Zeile auswählen und die gesamte Spalte in eine neue Spalte einfügen wird.VBA Loop Through Spalten

Ich weiß, wie durch Zeilen-Schleife:

Sub test() 
Dim i As Integer 
For i = 1 To 100 
    If Range("C" & i) = "All values USD Millions." Then 
     Range("C" & i & ":H" & i).Delete 
    Else 
     Range("A3").Select 
    End If 
Next 
End Sub 

Das Problem ist, dass Spalten Buchstaben, keine Zahlen, also bin ich nicht sicher, wie ich kann die ersten 30 Spalten Schleife durch und die Spalte mit „Est einfügen # "in der ersten Zeile in Range (" CA: CA ").

Antwort

2

Man könnte es so tun, obwohl Suche effizienter ist

Sub test() 

Dim c As Long 

For c = 1 To 30 
    If Cells(1, c).Value = "Est #" Then 
     Cells(1, c).EntireColumn.Copy Cells(1, "CA") 
    End If 
Next 

End Sub 

Hier ist die Methode Suchen

Sub test() 

Dim rFind As Range 

Set rFind = Range("A1").Resize(, 30).Find(What:="Est #", Lookat:=xlWhole, MatchCase:=False, SearchFormat:=False) 

If Not rFind Is Nothing Then 
    rFind.EntireColumn.Copy Cells(1, "CA") 
End If 

End Sub