質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1776閲覧

VBA EXCEL 別ブックへのデータ転記

kohan

総合スコア9

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2020/10/28 19:30

編集2020/10/29 05:54

イメージ説明
イメージ説明
コピー元とコピー先は同じ列数です。
望む結果は、画像の例でいきますと、コピー元B列の2,3,4行に、1,3,9の数値がありますが、これらの数値を
コピー先のB列の2,3,4行に転記し、もしコピー先に数値がすでにあれば、最後尾の次の行から転記していくように
したいのです。
B列からAL列まで同じ動作を繰り返し処理する予定で、B列で試行すると、
1,3,9と転記せず、B2セルでデータがカチャカチャと回転して、最終の9だけが転記されていくような状態です。
この状態を解消して、望む結果にするにはどうしたらよいのか、、ご教授いただきたく、よろしくお願い申し上げます。

画像を追加しております。
元のデータを先のデータの最後尾に、ボタンクリックで追加していきたいのです。

いつもお世話になっております。
さて、今、現行作業のブックから別のブックに転記しようと以下のように転記構文を書いてみました。確かに転記してくれますが、挙動がおかしいのです、、常に、B2セルに全データが反映されてカチャカチャと動いて、そのあと、最終行がずらっと並ぶような状態です。ようやくなんとか転記構文作ったのですが、自助ではこれ以上進むことができず、ご教授頂ければ本当にありがたいです、どうかよろしくお願いいたします。イメージ説明

Sub ボタン89_Click() Dim i As Long   Dim x As Long     Dim wb As Workbook       Set wb = Workbooks.Open(ThisWorkbook.Path & "\ルーレットデータ.xlsx")     For i = 2 To ThisWorkbook.Worksheets("回転数").Cells(Rows.Count, maxcolumn).End(xlUp).Row        For x = 1 To Workbooks("ルーレットデータ").Worksheets("data回転数").Cells(Rows.Count,_        maxcolumn).End(xlUp).Row       ThisWorkbook.Worksheets("回転数").Range("B" & i).Copy_        Workbooks("ルーレットデータ").Worksheets("data回転数").Range("B" & x).Offset(1)        Next     Next End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DreamTheater

2020/10/28 22:46

どのように転記したいのですか? 3×3位の表で良いのでコピー元シートとコピー先シートの転記イメージを追加してください。 インデントも分かり辛いです。
kohan

2020/10/29 03:29

失礼いたしました、画像を追加させていただきます。
DreamTheater

2020/10/29 04:07

転記元と転記先は同じセル位置ですか? それ(仕様)が明記されていないと判断できませんよ。 期待している結果はこうなんだけど、こうなっちゃいますって説明が必要です。 いまはこうなっちゃいますしか書かれてません。
kohan

2020/10/29 05:28

失礼いたしました。修正いたします。
kohan

2020/10/29 11:25

この度は幾度も連絡くださいましてありがとうございました。 なんとか自力で解決できましたが、、まだようやくここまでという感じです。 ご迷惑おかけいたしましたが、今後ともよろしくお願いいたします。
guest

回答1

0

自己解決

すいません、お騒がせして申し訳なかったのですが、以下のようにコードを修整したら、望む結果になりました、。  たったこれだけで、、とおもうのですが、最終行から下に、、というのは、こうすればできたのですね。。もっと難しいのかと思って、悩みまくりましたが、、 ただ、やっぱり、重くなるのですね、、 Dim i As Long Dim n As Long Dim wb As Workbook Set wb = Workbooks.Open(ThisWorkbook.Path & "\ルーレットデータ.xlsx") For maxcolumn = 2 To 39 For i = 2 To ThisWorkbook.Worksheets("回転数").Cells(Rows.Count,         maxcolumn).End(xlUp).Row   n = Workbooks("ルーレットデータ").Worksheets("data回転数").Cells(Rows.Count,         maxcolumn).End(xlUp).Row + 1      ThisWorkbook.Worksheets("回転数").Cells(i, maxcolumn).Copy Workbooks("ルーレッ          トデータ").Worksheets("data回転数").Cells(n, maxcolumn)  Next   Next End Sub コード

投稿2020/10/29 06:26

kohan

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DreamTheater

2020/10/29 22:37

自己解決として書きましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問