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

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

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

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

Q&A

解決済

1回答

8155閲覧

VBAで同じ値の時にその一行をコピペして持ってくるという式を作りたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

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

0グッド

0クリップ

投稿2019/08/15 08:29

VBAで同じ値の時にその一行をコピペして持ってくるという式を作りたいです。

L列の黄色の枠内の数字とA列の数字が一致すれば、
黄色列の同数の行のM~Pまでをコピーして
同じ数字の赤い範囲へ入れる・・・という式を作りたいです。

(添付画像2枚目のような形になりたいです。)

Sub Sample() Dim ret As Variant On Error GoTo Err_Trap For i = 1 To Worksheets("Sheet1").UsedRange.Rows.Count k = Application.WorksheetFunction.Match(Cells(i, 1), Columns(12), 0) Worksheets("Sheet1").Cell(k, 12).Copy = Worksheets("Sheet1").Cell(i, 2) Exit Sub

イメージ説明

イメージ説明

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

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

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

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

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

meg_

2019/08/15 09:36

Sample()を動かした結果はどうなるのでしょうか? 動作結果も合わせて載せていだだくと分かりやすいです。その上で分からない箇所を提示ください。
guest

回答1

0

ベストアンサー

データ量が少ない場合。For-Next構文の2重ループで簡単に実現できます。

VBA

1Sub sample() 2 Dim i As Long, j As Long 3 For i = 1 To Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 4 For j = 1 To Worksheets("Sheet1").Range("L" & Rows.Count).End(xlUp).Row 5 If Worksheets("Sheet1").Range("A" & i).Value = _ 6 Worksheets("Sheet1").Range("L" & j).Value Then 7 Worksheets("Sheet1").Range("B" & i & ":E" & i).Clear 8 Worksheets("Sheet1").Range("B" & i & ":E" & i).Value = _ 9 Worksheets("Sheet1").Range("M" & j & ":P" & j).Value 10 Exit For 11 End If 12 Next j 13 Next i 14End Sub

投稿2019/08/17 09:49

TanakaHiroaki

総合スコア1063

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問