• ベストアンサー

エクセル2010 値の検索と貼り付け

エクセル2010を使っています。 画像の様な Sheet2 があり、A列にたくさん文字が入力されています。 その中から、イニシャルテスト の文字を探し、該当セルのT列に Sheet3のT1~CD25を貼り付けたいと思います。 行数は10万行ほどありますので、負担の掛からない形で貼り付けできればと思います。 イニシャルテストの文字がA1に有れば、Sheet3のT1~CD25を Sheet2のT1に貼り付ける。 A27にも有りますので、Sheet3のT1~CD25をT27にも貼り付けます。 やりたいのは以上です、詳しい方、よろしくお願い致します。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

こんな感じだと思いますが、 T1:CD25の範囲は25行あります、イニシャルテストの文字は25以上空いて存在するのでしょうか? Sub macro() Dim C As Range, A As String Set C = Range("A:A").Find("イニシャルテスト", LookAt:=xlWhole) If Not C Is Nothing Then A = C.Address Do Worksheets("Sheet3").Range("T1:CD25").Copy Range("T" & C.Row) Set C = Range("A:A").FindNext(C) Loop Until A = C.Address End If End Sub

gekikaraou
質問者

お礼

回答ありがとうございます。 ばっちりできました、助かりました。 仰る通り、25行以内には イニシャルテスト の文字は出現しませんでした、よってBAとさせて頂きます。 ありがとうございました!

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! ↓のコードを標準モジュールにコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() Dim lastRow As Long Application.ScreenUpdating = False With Worksheets("Sheet2") .Rows(1).Insert .Range("A1") = "ダミー" lastRow = .Cells(Rows.Count, "A").End(xlUp).Row .Range("A1").AutoFilter field:=1, Criteria1:="イニシャルテスト" Worksheets("Sheet3").Range("T1:CD25").Copy Range(.Cells(2, "T"), .Cells(lastRow, "T")).SpecialCells(xlCellTypeVisible).Select Selection.PasteSpecial Paste:=xlPasteAll .AutoFilterMode = False .Rows(1).Delete .Range("T1").Select End With Application.ScreenUpdating = True MsgBox "処理完了" End Sub こんな感じではどうでしょうか?m(_ _)m

gekikaraou
質問者

補足

回答ありがとうございます。 早速試してみました。 お手数頂き、申し訳ないのですが、一つ目 A1にイニシャルテストの文字があり、それには貼り付けが出来るのでうが、その一つだけで終えてしまいます。

関連するQ&A