- ベストアンサー
VBAでシート上の転記について
- VBAを使用してシート上のデータを別のシートに転記する方法について教えてください。
- 入力シートの特定のセルの値に基づいて、会社シートのデータを別のシートに転記する方法について教えてください。
- VBAでの転記処理において、正しいシート名やセル範囲を指定しているにもかかわらず反映されない場合の解決方法について教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。 申し訳ない・・・。 End ifの上にNext iが抜けていました。
その他の回答 (6)
#1です。 以下で基本的には動作するかと思いますが、提示するコードは 正確にお願いします。 「これが・・・」と書かれていますがどれですか?在庫シートのみ? 会社シートの方はAA列で間違いないのでしょうか? 入力シートから会社シートに転記してそれを在庫シートに転記するので あれば入力シートから双方のシートに転記でよいのでは? 転記する範囲もこちらの想定でしかありません。 Sub 入力する() Dim 会社シート最終行 As Long Dim i As Integer If 入力シート.Range("A4").Value = "会社" Then For i = 1 To 2 会社シート最終行 = Sheets("会社シート").Range("A65536").End(xlUp).Row + 1 Sheets("会社シート").Range("AA" & 会社シート最終行).Value = Sheets("入力シート").Range("A4").Value Sheets("在庫シート").Range("A" & 在庫シート最終行).Value = Sheets("会社シート").Range("A4").Value End If End Sub
度々#1です。 >会社シート最終行 = 会社シート.Range("AA65536").End(xlUp).Row + 1 はA65536の間違いですか?? 因みに、入力シートのA1及びA2のデータを実行する度に会社シートとSheet1 のA列の最終行に追加していくには以下のようにすればよいかと思います。 Sub test() Dim 会社シート最終行 As Long For i = 1 To 2 会社シート最終行 = Sheets("会社シート").Range("A65536").End(xlUp).Row + 1 Sheets("会社シート").Range("A" & 会社シート最終行).Value = Sheets("入力シート").Range("A" & i).Value Sheet1.Range("A" & 会社シート最終行).Value = Sheets("入力シート").Range("A" & i).Value Next i End Sub
補足
Sub 入力する() If 入力シート.Range("A4").Value = "会社" Then Dim 会社シート最終行 As Long Fori=1 To 2 会社シート最終行 = 会社シート.Range("A65536").End(xlUp).Row + 1 会社シート.Range("AA" & 会社シート最終行).Value = 入力シート.Range("A4").Value 在庫シート.Range("A" & 在庫シート最終行).Value = 会社シート.Range("A4) ・↑ ・(これがZまで続きます。) ・ Else End If End Sub これでいいのでしょうか? やってみましたが反映されません・・・・
#1です。 入力シートのA4とB4は何ですか? 入力シートのデータを会社シートに転記する条件等も不明確です。 提示されている内容だと会社シートの最終行は入力シートのA4を転記する 時も、B4を転記する時も同じ行になっています。 もう少し具体的なことがわからないと・・・。 Sheet1への転記は会社シートに転記するタイミングと同じ時に行えば よいような気がします。
#1です。 良く見たら、提示されている内容だと、会社シートのA列最終行は 入力シートのA4の値にした後B4の値になるようになっています。 今ひとつ何がしたいのか不明です・・・。 どうしたいのでしょうか?
補足
入力シートに入力→会社シートA1に転記される→入力シートに入力→会社シートA2に転記される・・・・これの繰り返しになります。 これに 入力シートに入力→会社シートA1、sheetA1に転記される・・・・ という風にしたいのですが・・・
#1です。 下記でよいのでは? 現状提示されているものは動作しているのですよね? 会社シート最終行 = 会社シート.Range("AA65536").End(xlUp).Row + 1 Sheet1.Range("A" & 会社シート最終行).Value = 会社シート.Range("A4").Value Sheet1.Range("A" & 会社シート最終行).Value = 会社シート.Range("B4").Value
最終行取得ですが、Sheet1のAA列にデータはあるのでしょうか? 会社シートの最終行までならこの部分はそのままで良いかと思います。
補足
AA列にはデーターはないです。
お礼
ありがとうございました。