特定のセルから開始して別のシートにデータを転送し、(後続の呼び出しで)下方向に動作するマクロを作成する方法は?


0

SHEET1にDATA INPUTセル(セルB3)があります。マクロボタンを押すと、SHEET1のセルB3のデータがSHEET2のセルC5にコピーされ、SHEET1のセルB3に入力されたデータが削除されるマクロコードを作成します。そして、別のデータを入力してボタンをもう一度押すと、データはSHEET2の次の行(この場合はセルC6)にコピーされます。次に、セルC7、C8など。

このためのコードを作成しようとしましたが、セルC5で開始することはできません。常にセルC2から始まり、下向きになります。「Startrow」などのコードを調べてみましたが、機能しません。

以下のコードをご覧ください:

Sub Button1_Click()
Response = MsgBox("Are you sure?", vbYesNo)
If Response = vbNo Then Exit Sub
Dim nextrow As Long
nextrow = Worksheets("Sheet2").Cells(Rows.Count, "C").End(xlUp).Row + 1
Worksheets("Sheet1").Range("B3").Copy Worksheets("Sheet2").Range("C" & nextrow)
Worksheets("Sheet1").Range("B3").ClearContents
End Sub

superuser.comは無料のスクリプト/コード作成サービスではないことに注意してください。これまでに試したこと(既に使用しているスクリプト/コードを含む)と行き詰まった場所を教えていただければ、特定の問題の解決に努めることができます。また、「良い質問をするにはどうすればよいですか?」もお読みください。
DavidPostill

すでにセル内のデータを持っていますかC1- C4Sheet2の上に?  Cells(Rows.Count, "C").End(xlUp).Row+1基本的に「使用されている最後の行(列内)を見つけて、次の行に移動する」と言っています。行2で開始したくないと思わせるために何をしましたか?繰り返し呼び出すと、(正しく)行3、行4、行5などに進みますか?
スコット

こんにちは、スコット、返信ありがとうございます。はい、行2から行3へと正しく下向きに進んでいます。しかし、スプレッドシートでは、A1:B4にデータを配置する必要があります。したがって、コピー/貼り付けたデータは行5から開始する必要がありますが、残念ながらC1〜C4にはデータがありません。C5でコピー/貼り付けを開始するようにVBAを設定する方法がわかりません。
フリッツェオング

こんにちは。私は解決策を見つけました、ありがとう!
フリッツェオング

回答:


0

さて、マクロを最初に実行したときにデータを行5にコピーする場合は、次のようにします。

サブButton1_Click()
    応答= MsgBox( "Are you sure?"、vbYesNo)
    応答= vbNoの場合Subを終了
    薄暗いnextrow As Long
    nextrow = Worksheets( "Sheet2")。Cells(Rows.Count、 "C")。End(xlUp).Row + 1
→→   nextrow <5の場合Then nextrow = 5                                                      ←←
    Worksheets( "Sheet1")。Range( "B3")。Copy Worksheets( "Sheet2")。Range( "C"&nextrow)
    Worksheets( "Sheet1")。Range( "B3")。ClearContents
サブ終了

別の回答を見つけた場合は、(別の回答として)投稿する必要があります。
スコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.