私はこれをあまりにも長い間手動で行ってきましたが、このプロセスをスピードアップする方法が必要だと感じています. うまくいけば、あなたたちは私を助けることができます.
現在、あるシートから特定の列をコピーして貼り付け、別のシートに貼り付ける VBA マクロで記述された Excel ファイルがあります。これらは約 160 個あり、それぞれに約 10 個のコピー/貼り付けコマンドがあります。(このワークブックは と呼ばれworkbook A
ます)
現在、私の方法では、 を開きWorkbook B
、 のシートにデータをコピーしWorkbook A
、 のドロップダウンから実行するマクロを選択しWorkbook A
、結果をコピーして「マスター」に貼り付けますWorkbook C
。私にとっての問題は、データの列の位置であるマップが変更されることが頻繁にあることですWorkbook B
。次のような「マスターマップ」ファイルを維持しています。
Contract# | Purchaser | Price | Quantity | Total
------------------------------------------------
A | B | C | D | E
------------------------------------------------
G | D | C | A | B
------------------------------------------------
など(乱雑で申し訳ありません)
私がやりたいことは、A: マップ上の列 (貼り付け列) と B: その特定の契約の行に表示されている文字 (これはその列をコピーします文字が表す)。
これは可能ですか?
第二に、それが - 各ファイルのファイルパッチを指定することによってこれを自動的に実行させるオプションは傑出しています (私はファイルの場所と名前の明確な分類法を持っています)。それも可能ですか?
- 実行されたマクロの要約サンプルが追加されました。
マクロは非常に単純です。ここにサンプルがあります...
Sub PA979()
Application.ScreenUpdating = False
'Retail $
Sheets("VSR Input").Select
Range("x1:x5004").Copy
Sheets("Sheet1").Select
Range("q4").Select
ActiveSheet.Paste
'PA $
Sheets("VSR Input").Select
Range("y1:y5004").Copy
Sheets("Sheet1").Select
Range("s4").Select
ActiveSheet.Paste
'Q
Sheets("VSR Input").Select
Range("z1:z5004").Copy
Sheets("Sheet1").Select
Range("t4").Select
ActiveSheet.Paste
'Total $
Sheets("VSR Input").Select
Range("aa1:aa5004").Copy
Sheets("Sheet1").Select
Range("u4").Select
ActiveSheet.Paste
Range("A1").Select
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Dim usedRows As Long
usedRows = ws.Cells(ws.Rows.Count, "U").End(xlUp).Row
Application.ScreenUpdating = False
Sheets("Sheet1").Select
Range("v3").Select
ActiveCell.FormulaR1C1 = "PA#"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell = "979"
ActiveCell.Select
Selection.AutoFill Destination:=ActiveCell.Range(Cells(1, 1), Cells(usedRows - 3, 1)), Type:= _
xlFillDefault
Range("v4").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End Sub `