这个脚本在踢我的屁股。前进一步后退三步。:)
我有一个指定的文件夹,我的文件存放在那里,脚本一次一个地遍历它们。它查找以 N 或 V 开头的文件名,然后根据文件类型确定要复制/粘贴的单元格范围。
我在第一次迭代后基于第一列的脚本行为。在脚本确定将数据粘贴到 A 列中的位置后,B 列数据应根据“firstRange”变量位置跟随,并使用 .Offset(-1,1) 将其粘贴到它旁边。
我需要脚本首先与顶部对齐,因此这段代码:
.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
在第一次迭代之后,我需要它从 A 列开始,以下列结束在同一行中,这是我使用的地方:
If fileName Like "V*.xls" > 1 Then
但是 - 我不知道该语法是否正确。我试图让它在第一次迭代后开始运行。
这是 A 列和 B 列的代码片段:
fileName = Dir(folderPath & "*.xls")
Do While fileName <> ""
Application.ScreenUpdating = False
Set wbkCS = Workbooks.Open(folderPath & fileName)
If fileName Like "V*.xls" Then
wbkCS.Worksheets("Cut Sheet").Range("S4:S2000").Copy
With wbkVer.Worksheets("Cutsheets")
Set firstRange = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
firstRange.PasteSpecial xlPasteValues
End With
ElseIf fileName Like "N*.xls" Then
wbkCS.Worksheets("PON Cut Sheet").Range("AV3:AV2000").Copy
With wbkVer.Worksheets("Cutsheets")
Set ponRange = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
ponRange.PasteSpecial xlPasteValues
End With
End If
If fileName Like "V*.xls" > 1 Then
wbkCS.Worksheets("Cut Sheet").Range("AA4:AA2000").Copy
With wbkVer.Worksheets("Cutsheets")
firstRange.Offset(-1, 1).PasteSpecial xlPasteValues
End With
ElseIf fileName Like "V*.xls" Then
wbkCS.Worksheets("Cut Sheet").Range("AA4:AA2000").Copy
With wbkVer.Worksheets("Cutsheets")
.Range("B" & .Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End With
ElseIf fileName Like "N*.xls" > 1 Then
wbkCS.Worksheets("PON Cut Sheet").Range("AA3:AA2000").Copy
With wbkVer.Worksheets("Cutsheets")
firstRange.Offset(-1, 1).PasteSpecial xlPasteValues
End With
ElseIf fileName Like "N*.xls" Then
wbkCS.Worksheets("PON Cut Sheet").Range("AA3:AA2000").Copy
With wbkVer.Worksheets("Cutsheets")
.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End With
End If