• ベストアンサー

マクロの転記で keithinさん

すみません、http://okwave.jp/qa/q7936835.htmlで質問したものです。 これを実行したのですが、2回目以降の操作で、転記されるシート2がまた2行目から始まってしまうため、先に転記されたものが上書きで消えてしまいます。 追加分は下に足していく形にしたいのですが…

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ん? いつの間にナイショで解決していたのですか。 >追加分は下に足していく形にしたい 変更前: r = 1 変更後: r = worksheets("Sheet2").range("A65536").end(xlup).row

hiro5314
質問者

お礼

出来たと思ったので解決済みにしたのですが、2回目に上記のようなことが起こりまして… ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのマクロで転記

    シート1とシート2があり、 シート1の20Aから39Lまでのセルの中に情報を書き込んでいます。 シート1の20Lから39LのL行で、数値が入っているセルがあれば、その行のA、B、I、L列と、J2、A7を取り出し、シート2の2行目から下に転記していくのですが、 シート2のA列にはシート1のJ2を、B列にはシート1のA7を、C列以降は、シート1のA、B、I、Lを入れるようにします。 また同じ条件がシート1で発生すれば、シート2の3行目以降に転記していく感じです。 どのようにすればいいでしょうか。

  • EXCEL VBA 転記 条件分岐 新規転記 上書転記 プログラム

    いつも御世話になっております。 以下のことをしたいのですが、詰まってしまいました。 皆様の力をお借りしたいと思い、書き込ませていただきます。 ・ボタン1をクリックすると、base(転記元)のG列に書かれた事項と同一のシート(転記先)へ転記する(各シートA,B,Cへ転記) ・転記先のE列を見て、既存のものであれば、上書きする ・転記先のE列を見て、新規のものであれば、空いている行を探し転記する。 (例) base(転記元シート) E1|F1|G1 名前 収入 シート先 月曜 50 A 火曜 100 A 木曜 150 C 土曜 50 A 日曜 100 B 水曜 150 A 金曜 10 C 転記実行前 A(転記先シート) E1|F1|G1 名前 収入 シート先 月曜 A 火曜 A 土曜 A 転記実行後 A(転記先シート) E1|F1|G1 名前 収入 シート先 月曜 50 A 火曜 100 A 土曜 50 A 水曜 150 A 以下に作成したプログラムを記述します。 が、IF文に関するエラーが生じております。 Sub ボタン1_Click() Dim dstSheet As Worksheet Dim srcRow As Long Dim dstRow As Long Dim name As Integer Dim obj As Object Set srcSheet = Sheets("base") For srcRow = 2 To srcSheet.Range("G" & Rows.Count).End(xlUp).Row '元シートのデータ範囲で繰り返し(シート先は必須なのでG列でチェック) If srcSheet.Range("G" & srcRow).Value <> "" Then '(転記先シート名)が空白でない場合に実行(1) Set dstSheet = Sheets(srcSheet.Range("G" & srcRow).Value) 'シート取得(1) name = Sheets(srcSheet.Range("E" & srcRow).Value) '名前を取得(1) Set obj = Worksheets(dstSheet).Cells.Find(name) '名前を転記先の中で検索(1) End If '(1)の終了 If obj Is Nothing Then '検索でかからなかったら、新たに空白の行を見つけて転記元から転記先へ転記する(3) '以下3行問題点???? dstRow = dstSheet.Range("G" & Rows.Count).End(xlUp).Row + 1 '転記先行取得 If dstSheet.Range("E2") = "" Then dstRow = 1 '質問で転記先には1行目からなので、それに対応 dstSheet.Range("E" & dstRow).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記 End If Else '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4) lngYLine = obj.Row intXLine = obj.Column With Sheets(dstSheet) '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4) dstSheet.Range("E" & lngYLine).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記(4) End If '(3),(4)の終了 Set obj = Nothing 'Objの初期化 Next End Sub

  • マクロ 値の転記 再度

    マクロ 値の転記 再度 昨日はkyboさんに解答を頂き大変助かりました。 ありがとうございました。 教えて頂いたコードを別のマクロでも活用しよう思ったのですが どのように改変していけばいいのかまた悩んでいます。 度々で申し訳ありませんが、どなたか宜しくお願い致します。 やりたいこと 転記元のBに0以外の数字が入っている場合、転記先のA列に 同じ値を常に5回転記させたい。 "あ"を5回転記→1行あける→"う"を5回転記→(続く・・・) ★Sheet1 転記先(7行目から転記したい)   A ------------------- 7 あ 8 あ 9 あ 10 あ 11 あ -------------------- 12 空行 -------------------- 13 う 14 う 15 う 16 う 17 う -------------------- 18 空行 -------------------- 19 以下 5つの纏まりの枠が300行位まで続く ★Sheet2 転記元(5行目からデータがある)   A    B -------------------- 5 あ 6 あ 7 あ計  100 -------------------- 8 空行 -------------------- 9 い 10 い 11 い 12 い計  0 -------------------- 13 空行 -------------------- 14 う 15 う 16 う 17 う計  500 -------------------- 18 空行 19 (以下、続く) Sub テスト() Dim i As Long '転記元のデータ開始行は5行目 For i = 5 To 300  '転記元のB列が0以外  If Worksheets("転記元").Cells(i, "B") <> 0 Then    Worksheets("転記先").Cells((i - 1) * 5 + 1, "A").Resize(5) _ = Worksheets("転記元").Cells(i, "A")  End If Next i End Sub

  • 急!!Excel VBA 転記マクロを教えて下さい

    Excel VBA超初心者です、 急ぎ作らなければならない資料があり、ご助力願います。 次の様な転記するアクションをコマンドボタンに設定したいです。 Sheet1の列A(先頭セルA2)に入力したデータを、 追加した(入力間違い等を除き、保存した)データ分だけ Sheet2の列B(先頭セルB3)の最終行から転記させていく。 列Aに入力したデータは、並び替えをするので (この分は、今回のVBAに含みません。入力・転記後、Sheet1で普通に並び替えをします。) 列Aと列Bのデータの順番が異なる。 以上です。 どうぞ宜しくお願いします。

  • エクセルVBAの転記について

    エクセル2013VBAで最終行を取得しての転記が上手くいきません。どのようにすれば良いかご教授ください。 簡単なサンプルを下記します。 Sub サンプル入力からのDBへの転記() Dim Sh1 As Worksheet Dim Sh2 As Worksheet Dim myRow As Long Set Sh1 = Worksheets("サンプル入力") Set Sh2 = Worksheets("サンプルDB") With Sh2 myRow = Range("A" & Rows.Count).End(xlUp).Row + 1 .Range("A" & myRow).Value = Sh1.Range("D4").Value .Range("B" & myRow).Value = Sh1.Range("F4").Value End With End Sub 入力内容を変えないテストでは (1)実行するとDBへの転記は問題なく出来ます。 (2)継続してマクロを実行しても問題なく転記が行われ、同じデータが蓄積されていきます。 入力内容を変更して引き続きマクロを実行すると挙動不審に陥ります。 現象としては (1)初めの行に何度も重ねて転記を行う。 (2)空白行を作り、その行に何度も転記を行ってしまう。 (3)空白行を作り、それ以降転記を実行し蓄積を行ってしまう。 入力シートには結合セル、リストを使用していますが、原因究明を行う中でこれが原因とは思えませんでした。 これがクリアできないと先に進めません。ぜひお力を貸してください。 宜しくお願い申し上げます。

  • マクロで5個のBOOKのデータをBOOK1に転記

    エクセルマクロで対話型でBOOK2~6の5個のデータを BOOK1のシート1に順番で転記したいです。 BOOK2~BOOK6は作業者にファイルを選択させたいです。 BOOK2~BOOK6は作業の都度行数がBOOKごとに変わります。 (500~5,000行でばらつきます) 流れとしては、 1.BOOK1を開いてマクロを軌道 2.エクセルのファイルを開くウィンドーが出る 3.ファイルを選択させる(例:マイネットワーク内のBOOK2を選択) 4.ウィンドーの開くをクリックする 5.転記1回目   指定したファイルが開いてデータが   BOOK1のシート1に転記される   この1回目は1行目からデータがある最終行まで。   その後BOOK2は閉じられる 6.メッセージボックスで「転記完了」と表示 7.メッセージボックスの「OK」をクリックすると   エクセルのファイルを開くウィンドーが出る 8.ファイルを選択させる(例:マイネットワーク内のBOOK3を選択) 9.ウィンドーの開くをクリックする 10.転記2回目   指定したファイルが開いてデータの中の2行目~最終行までを   BOOK1のシート1の最終行の次の行から転記を行う。   (NO.5のBOOK2が1,000行の場合1,001行目から    BOOK3のデータ2行目以降が転記される)   その後BOOK3は閉じられる 11.この作業を計5回行う   (転記3~5回目も転記するデータは2行目~最終行) 13.メッセージボックスで「5個のBOOKの転記が終了」と表示 14.メッセージボックスの「OK」をクリックすると   Call 編集   でSub 編集 というプロシージャーが起動する Sub 編集は出来上がってます。 (BOOK1のシート1を編集します。) NO.1~NO.14のマクロ記述を教えてください。 自分で作成した記述では全然駄目でした。 よろしくお願いします。

  • 入力フォームをテーブルの真下に転記

    エクセルのVBAで入力フォームを作成して、入力フォームのテキストをシート2の、テーブルの見出しの次の行から転記される用にしたいのですが、最終行を取得すると見出しから一行飛ばして二行目に転記されてしまいます。 テーブルを作成した時に見出しの下に空欄のデータシートが自動で追加されてしまうからでしょうか? 何か対策はあるでしょうか? コードで提示して頂くと助かります。 入力フォームはシート1で開く 転記 シート2のA列から順に、連番生成(1〜)、テキストボックス1.2.3..... 宜しくお願いします

  • Excel VBA データの転記

    Excel2003を使用しています。 Sheet1のB1セルとSheet2のB1セルのデータが一致したら、Sheet2のB1セル~E1セルのデータをSheet1のF1セル~Iセルに転記するというコードを書いています。 Sheet1のデータ最終行を取得して、上記の条件を満たさなかったSheet2のB1セル~E1セルのデータをSheet1のデータ最終行の1行下から順に転記するという内容を追加したいのですが、転記先の指定の仕方が悪いのか、希望通りになりません。 どなたか一例を示していただけないでしょうか? スマホからの投稿で、実際に書いているコードを記載できず、分かりづらくて申し訳ないのですが、よろしくお願いします。

  • A1に数字を入力するとB1に加工して転記するマクロ

    A1に入力されるのを監視して、入力された数字を加工してB1に自動的に転記するマクロを書きたいのですが、どのようにすればよいでしょうか? 他の質問(http://okwave.jp/qa/q3163895.html)から、こんな感じかなと思うのですが、【B1に下一桁を切り落として、転記】の部分をどう書いていいのか分かりません。 例えば、A1に「12345」と入力された場合、B1は「1234」を入力したいのです。 よろしくご指導ください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) if Range("A1") <>"" then 【B1に下一桁を切り落として、転記】 End Sub

  • EXCELデータの転記

    あるシートに打ち込んだデータが、もれなく別のシートにも転記できるようにしたいのです。 シート1:「全顧客リスト」 シート2以降:「各顧客の詳細データ」 1で打ち込んだデータが、2に転記されるようにしたいのです。 「マクロ」というものを使うのでしょうか? いろいろ調べてみましたが、今ひとつぴんときません。 方法をご存知の方、または定評のあるQ&Aサイトをご存知の方、教えてください!

印刷できない!dcp-526nのトラブル
このQ&Aのポイント
  • 突然、ブラザー製品のdcp-526nで印刷ができなくなった場合の対処方法を解説します。
  • dcp-526nで印刷できないトラブルの原因や対処法、設定などを詳しくご紹介します。
  • 印刷できない問題が発生した際に、dcp-526nのwifi接続や設定の確認方法について解説します。
回答を見る

専門家に質問してみよう