- ベストアンサー
シート間のデータのやりとり2
- エクセル2003 XPを使用している場合、シート「記入」とシート「入金記入」の2つのシートがあります。これらのシートの内容は他のシートにも反映されます。シート「記入」のリストから「入金済」を選択した場合、シート「入金記入」の一部のセルが自動的に記入されます。
- 具体的には、B1のセルには日付が記入され、C1のセルにはシート「記入」の番号がそのまま記入されます。また、D1のセルにはシート「記入」の売上金額がそのまま記入されます。
- 現在はシート「入金記入」を手動で入力していますが、VBAのコードを使用することで、自動的に入力されるようになります。質問者はコードを作成しているがエラーが出ており、解決策を求めています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 シート「記入」I1のリストから「入金済」のセルを ダブルクリックするとマクロ走ります。 下のコードをシート「記入」に貼り付けてください Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim i As Long Dim r As Byte i = Sheets("入金記入").Range("B65536").End(xlUp).Row + 1 r = Target.Row If Target.Value = "入金済" Then With Sheets("入金記入") .Cells(i, 2).Value = Date .Cells(i, 3).Value = Cells(r, 3).Value .Cells(i, 4).Value = Cells(r, 4).Value End With End If End Sub
その他の回答 (2)
- xls88
- ベストアンサー率56% (669/1189)
≪マクロが反応しない件≫ If Target.Column = 5 And Target.Value = "入金済" Then 上記コードですが I列セルに、入金済と入力されて、マクロが起動して欲しいわけです。 従って、TargetのColumn値があっていないような気がします。 # 余計なお節介ですが シート間のデータのやりとり http://oshiete1.goo.ne.jp/qa4637139.html?ans_count_asc=20 で マクロ原作者の、pc_knightさんからレスが付いています。 返信をしていただけるようお願いいたします。
お礼
ご協力有難うございました。 今後ともよろしく御願いします。
- n-jun
- ベストアンサー率33% (959/2873)
>変数が定義されていません。 なのですから 変数を定義すればいいのでは? Private Sub Worksheet_Change(ByVal Target As Range) Dim rw as Long '< 追加? If Target.Count = 1 Then
お礼
ご協力有難うございました。 今後ともよろしく御願いします。
補足
誠に申し訳なく思いますがVBAの知識がない私で >変数が定義されていません。 なのですから 1 変数を定義すればいいのでは? に対して定義とが分かりません。 2 Private Sub Worksheet_Change(ByVal Target As Range) Dim rw as Long '< 追加? If Target.Count = 1 Then で Dim rw as Long '< を入れて試しましたが反応しませんでし た。 誠に勝手ですが再度ご指導いただけませんか。 セツに御願いします。 知識不足の小生をどうかご指導の程よろしく御願いします。
お礼
解決し私が考えていたようになりました。 知識不足の小生にご協力本当に感謝します。 有難うございました。 追伸: 色んなテスト Wクリックのミス 「記入」のミスによる など考えられるミスも試してみましたが何も揉んだ九無く稼働しまし た。