「情報」というワークシートに顧客データを記入します。次に、同じ顧客データを別のワークシート「注文」に手動でコピーします。「注文」には、請求書番号と次のような構造が含まれています。
A D E F H J
INVOICE FIRSTNAME LASTNAME DESCRIPTION POSTCODE EMAIL
1 1234 Fred Smith Red widget AR225H fred@smith.com
2 1235 Bill Jones Blue widget EH66VT bill@jones.com
3 1236
4 1237
データを「情報」から「注文」にセルごとにコピーするマクロを作成したいと思います。これは可能ですが、「注文列Dが空白の場合は、データのコピー先の行3を選択してください」という条件付きコメントが必要です。これがない場合は、最後の注文行を上書きします。
顧客データは「情報」シートで毎回変更されることに注意してください。これが、手動でコピーする理由です。
私は現在、この式を使用して、次に利用可能な請求書番号を情報シートに取り込みます。
= INDEX(Orders!$ A:$ A、COUNTA(Orders!$ D:$ D)+1)
これにより、現在の顧客データに割り当てる適切な請求書番号がすでに含まれている「情報」シートにセル(F3と言う)を設定できます。これを使用して、条件を「Info!F3がOrders!列Aに表示される行に情報を貼り付ける」に書き換えることができます。
それが役立つ場合は、マクロを次に示します。
Sub Macro2()
'
' Macro2 Macro
'
'
Range("B6").Select
Selection.Copy
Sheets("Orders").Select
Range("C735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("D735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B8").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Info").Select
Range("B11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("E735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("F735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B15").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("G735").Select
ActiveSheet.Paste
Sheets("Info").Select
ActiveWindow.SmallScroll Down:=-6
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("B735").Select
ActiveSheet.Paste
End Sub
==================
たぶん、その質問には情報が多すぎますか?最も単純な形式では、セルの内容に基づいて行を選択し、マクロを介してこの行に情報を貼り付けるだけです。
==================
更新-これが「情報」シートのレイアウトです。すべての行が「注文」シートの列と一致するわけではないことに注意してください。
A B C
Invoice number: 1236
Peter
Parker
12
Overflow Road
Stacktown
BB338J
0121 345 6789
0777 789 789
peter@spidermail.com
Order description: Red widget