実現したいこと
Q2に書いてある特定の文字列A(櫛引橋上流)の右にある4つのセル(R2,S2,T2,U2)に存在する数字を、L列を検索してAと一致する文字列が存在する全ての行のG列,H列,I列,J列にコピーする。
全ての行にコピーが終わったら同様に、Q3に書いてある特定の文字列B(剣吉)の右にある4つのセル(R3,S3,T3,U3)に存在する数字を、L列を検索してBと一致する文字列が存在する全ての行のG列,H列,I列,J列にコピーする。
これを自動で繰り返し行えるようにしたいです。
具体的には、既にG2,H2,I2,J2にR2,S2,T2,U2をコピーしてしてありますが、
G3,H3,I3,J3~G13,H13,I13,J13 / G15,H15,I15,J15 / G17,・・・
にもR2,S2,T2,U2をコピーし、それが完了したら
R3,S3,T3,U3を G14,H14,I14,J14 / G16,・・・ にコピーし、
次にR4,S4,T4,U4を・・・
ということを、繰り返し自動で行いたい、ということです。説明が下手で申し訳ありません・・・。
自動化の案をお持ちの方はご教授いただければ幸いです。よろしくお願いいたします。
前提
ほぼ初心者です。
こちらのサイト様を参考にしてコードを考えてみたのですがエラーで動きませんでした。
https://vba-terakoya.com/get-cellnumber/
また、10000行程度あるため手動でコピーすることは断念しました。
発生している問題・エラーメッセージ
アプリケーション定義またはオブジェクト定義のエラーです
該当のソースコード
Sub Sample2() Dim i As Long Dim k As Long Dim D As String, Memo As Long Dim buf As Long For i = 2 To 3 'data.csvの情報をそれぞれ D(日)、Memoに代入しておく D = Cells(i, 17) Memo1 = Cells(i, 18) Memo2 = Cells(i, 19) Memo3 = Cells(i, 20) Memo4 = Cells(i, 21) For k = 2 To 3 '表の日と合致する行を探してmemoの内容を転記する buf = ReturnCellNum(D) Cells(buf, 7) = Memo1 Cells(buf, 8) = Memo2 Cells(buf, 9) = Memo3 Cells(buf, 10) = Memo4 Next k Next i End Sub Function ReturnCellNum(Name As String) As Long Dim FoundCell As Variant Set FoundCell = Range(Cells(k, 12), Cells(3, 12)).Find(Name) If FoundCell Is Nothing Then MsgBox "見つかりませんでした" Else ReturnCellNum = FoundCell.Row End If
試したこと
Sub Sample2()
Dim i As Long
Dim k As Long
Dim D As String, Memo As Long
Dim buf As Long
For i = 2 To 3
'data.csvの情報をそれぞれ D(日)、Memoに代入しておく
D = Cells(i, 17)
Memo1 = Cells(i, 18)
Memo2 = Cells(i, 19)
Memo3 = Cells(i, 20)
Memo4 = Cells(i, 21)
’表の日と合致する行を探してmemoの内容を転記する
buf = ReturnCellNum(D)
Cells(buf, 7) = Memo1
Cells(buf, 8) = Memo2
Cells(buf, 9) = Memo3
Cells(buf, 10) = Memo4
Next i
End Sub
Function ReturnCellNum(Name As String) As Long
Dim FoundCell As Variant
Set FoundCell = Range("L1:L3").Find(Name)
If FoundCell Is Nothing Then
MsgBox "見つかりませんでした"
Else
ReturnCellNum = FoundCell.Row
End If
だと2行目にはコピーされるのですが、3行目にはコピーされずにループが終わってしまいます(その結果がスクショです)。
補足情報(FW/ツールのバージョンなど)
記載するコードには、動くかどうかのテストとしてループの数字から2 To 3にしてありますが、最終的には2 To 10000にしたいです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/11/23 04:21