繰り返し処理のコードが色々あるようで、どれが適切かわからないのでアドバイスをお願いします。
中途半端にコードを掲載しますが、ここまでできているという目安でお願いします……。
######環境
Excel(バージョン1910(ビルド 12130.20410))
######概要
別ブックの.csvファイルからA列の特定文字列を含んだ複数のセルを転記したい。
#####詳細
※転記元ファイル(.csvファイル)と転記先ファイルを開いた状態
※コピペしたいセルはA列に点在するため、範囲でのコピーは不可
1.転記先の「開始セル」セルを文字列検索する
2.上記の1つ下の座標を取得する
3.転記元ファイルで文字列検索(部分一致)をする
4.一致したセルをコピーする
5.転記先開始セルにペーストする
6.転記先セルを下にずらす
7.手順2~6を繰り返す
8.合致する全ての転記が終わったら終了する
#####コード
vba
1'変数 2Option Explicit 3Sub sample() 4 '「転記先」のシート1を変数に格納 5 Dim book As Workbook 6 Set book = Workbooks("転記先.xlsm") 7 Dim sheet, csvsheet As Worksheet 8 Set sheet = Workbooks("転記先.xlsm").Worksheets(1) 9 10 'csvファイルを転記するための変数 11 Dim csv_wb, csvname As Workbook 'ワークブック固有拡張子 12 Dim OpenFilename, csv As String 13 14 'OpenFilename:csvを開くための変数 15 'csv:csvファイル_拡張子付き 16 'csvname:csvの名前 17 'csvsheet:csvのシート名 18 19 '繰り返し処理の変数 20 Dim damy1 As Range 21 Dim damy1_ad, damy1_v As String 22 23 24'転記元の.csvファイルを開くコードは正常なため、割愛 25 26'シート1で「開始セル」を検索(完全一致) 27 Set damy1 = sheet.Cells.Find(What:="開始セル", lookat:=xlWhole) 28 If Not damy1 Is Nothing Then 29 damy1_ad = damy1.Offset(1, 0).Address( _ 30 RowAbsolute:=False, _ 31 ColumnAbsolute:=False) '「開始セル」文字列の1つ下のセル座標を変数に格納 32 Else 33 Call MsgBox("セルが見つかりません") 34 End 35 End If 36 37 Dim damy2_r As Range 38 Set damy2_r = Range("A:A") '検索範囲:A列 39 Set damy2 = csvsheet.damy2_r.Find(What:="検索文字", lookat:=xlPart)
不勉強で申し訳ありませんが、よろしくお願い致します。
説明不足の箇所がありましたら修正しますので、コメントをお願いします。
回答2件
あなたの回答
tips
プレビュー