我已经编写了下面的代码,以便它将检索文件位置并将它们放入路径列(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列的底行已被填充。我不是百分之百确定为什么会这样,但可能是因为没有涉及到循环?我不知疲倦地考虑添加循环,但不能影响当前代码。有什么想法吗?
我已经编辑了上面的代码并得到了一个循环工作。但现在它重复了底线。
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
这是宏的结果:
答案 0 :(得分:0)
您的范围被Set csv_ap = Range("C65000").End(xlUp)
定义为单个单元格。
如果要处理从1到最后占用范围的所有行,则需要:
Set csv_ap = Range("C1:C" & Range("C65000").End(xlUp).Row)