Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA循环通过列_Vba_Excel_Loops_For Loop - Fatal编程技术网

VBA循环通过列

VBA循环通过列,vba,excel,loops,for-loop,Vba,Excel,Loops,For Loop,我正在尝试编写一个宏,它将选择第一行中带有“Est#”的列,并将整个列粘贴到一个新列中 我知道如何循环行: 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

我正在尝试编写一个宏,它将选择第一行中带有“Est#”的列,并将整个列粘贴到一个新列中

我知道如何循环行:

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列,并将第一行中带有“Est#”的列粘贴到范围(“CA:CA”)。

您可以这样做,尽管Find更有效

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
下面是Find方法

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