如何将循环设置为没有设置整数值的宏?

时间:2015-05-08 13:22:16

标签: excel vba excel-vba

我已经编写了下面的代码,以便它将检索文件位置并将它们放入路径列(B),该列对应于.csv列(C),其中找到“是”。

Dim csv_ap As Range
Dim path_report2 As String

Sheets("Mail Report").Activate
Set csv_ap = Range("C65000").End(xlUp)

If csv_ap.Value = "YES" Then
path_report2 = MAIN_PATH & "1. Invoices+BUFs - " & Sheets("Sheet1").Range("D65000").End(xlUp).Value _
& "\" & Sheets("Sheet1").Range("C65000").End(xlUp).Value & " - " & Sheets("Sheet1").Range("AK65000").End(xlUp).Value _
& "\" & "LOGGED" & "\" & Sheets("Sheet1").Range("E65000").End(xlUp).Value

csv_ap.Offset(0, -1) = path_report2

End If

正如您所看到的,只有B列的底行已被填充。我不是百分之百确定为什么会这样,但可能是因为没有涉及到循环?我不知疲倦地考虑添加循环,但不能影响当前代码。有什么想法吗?

Mail Report.

我已经编辑了上面的代码并得到了一个循环工作。但现在它重复了底线。

Dim cell As Range
Dim path_report2 As String

Sheets("Mail Report").Activate

For Each cell In Sheets("Mail Report").Range("C2:C10").Cells
If cell = "YES" Then
path_report2 = MAIN_PATH & "1. Invoices+BUFs - " & Sheets("Sheet1").Range("D65000").End(xlUp).Value & "\" & Sheets("Sheet1").Range("C65000").End(xlUp).Value & " - " & Sheets("Sheet1").Range("AK65000").End(xlUp).Value & "\" & "LOGGED" & "\" & Sheets("Sheet1").Range("E65000").End(xlUp).Value

cell.Offset(0, -1) = path_report2

End If
Next

这是宏的结果:

Result of updated macro

1 个答案:

答案 0 :(得分:0)

您的范围被Set csv_ap = Range("C65000").End(xlUp)定义为单个单元格。

如果要处理从1到最后占用范围的所有行,则需要:

Set csv_ap = Range("C1:C" & Range("C65000").End(xlUp).Row)