VBAを使用して、一部のセルの値をコピーして同じワークブックの他のワークシートに貼り付けることを試みています。VBAで値をコピーして別のワークシートに貼り付けます
次のようにオーダーリストワークシートのフォーマットがあるで:私は数量でオーダーリストにシートをコピーして、列に示すように、関連するシートに貼り付ける必要があり
(Column A) | (Column B) | (Column C) | (Column D) | (Column E) | (Column F)
Product Code | Product Description | Price | Quantity | Net Amount | Sheet Name
F.
たとえば、製品コード AAAはです。 10とシート名 Art in オーダーリスト
Product Code | Product Description | Price | Quantity | Net Amount | Sheet Name
AAA ... ... 5 ... Art
Iは、製品コード 10の代わりに5へアートシートにAAAの数量(列G)を交換するためのコードは、アートシートの列B内にある必要があります。
(Column B) | ... | (Column G)
Product Code | Other headers | Quantity
AAA ... 10 ' <---- REPLACE WITH 5
私は次のように更新している:
Dim j As Long, i As Long
j = 18
With Worksheets("Order List")
If Sheets("Order List").Range("F" & j) <> "" And Sheets("Order List").Range("A" & j) <> "" Then
i = Worksheets(.Range("F" & j)).Columns("B").Find(What:=.Range("A" & j).Value, LookIn:=xlValues, LookAt:=xlWhole).Row
Sheets("Order List").Range("D" & j).Copy Destination:=Worksheets(Worksheets("Order List").Range("F" & j)).Range("G" & i)
j = j + 1
End If
をそこには、エラーメッセージが今ありませんが、どちらかのアートシートに数量を交換しません。 宛先が間違っていますか?私はそれをもう一度確認してください。多くのおかげで
関連するシートと製品コードの両方が利用可能でない限り、 'j'の値を見つける必要はありません。利用可能であることを確認する前にそれらの値を使用しないでください。 – YowE3K
@ YowE3K私は列を更新しました。列Aの商品コード、列Dの数量、およびシート名は、注文リストの列Fにあります。最初の行はOrder Listの18です。製品コードは、他のワークシートの列Bにあります。私はあなたが書いたコードは行番号を見つけることであり、この行番号を使って他のシート(この例ではArt Sheet)の関連する列Gを見つけることを理解しています。関連するシートと製品コードの両方を入手できるので、コードが機能するはずです。私はそれを更新し、まだ実行時エラー "9"を参照してください。それが間違っていれば私のコードを修正してください。多くのありがとう –
あなたの更新されたコードは 'Sheets(" Order List ")かRange(" F "&j)<>" "かどうかをテストする前に' Worksheets(.Range( "F"&j) '。空白の場合は、名前のないワークシートを探しています。それらが利用可能であることを確認する前に値を使用しようとしないでください - 'If'ステートメント内で' i' **の計算を動かすことがわかる場所で 'If'ステートメントを動かしてください。 – YowE3K