2017-05-19 69 views
1

我正在嘗試編寫一個宏,它將在第一行中選擇帶有「Est#」的列,並將整列粘貼到一個新列中。VBA Loop Through Columns

我知道如何通過行循環:

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 

的問題是,列有字母,而不是數字,所以我不確定我如何通過前30列環和粘貼與「預估列#「的第一行放入範圍(」CA:CA「)。

回答

2

你可以做到這一點。因此,雖然尋找更有效

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 

這裏是查找方法

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