このスクリプトは私のお尻を蹴っています。一歩進んで三歩下がる。:)
ファイルが置かれる指定されたフォルダーがあり、スクリプトはそれらを一度に 1 つずつ処理します。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