Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


44640 / 76732 ←次へ | 前へ→

【37107】Like関数を使った処理を高速で行うには?
質問  カド  - 06/4/21(金) 20:11 -

引用なし
パスワード
   アクティブセルに検索元データ
アクティブセルから3つ左に検索先データ
アクティブセルから2つ左に取得したい値があります。

以下のようなコードを書いたのですが、データ量が数万個あると
処理速度が数分程度掛かってしまいます。

なんとかもっと高速に処理したいのですが、なんとかならないでしょうか?


Sub データ取得_あいまい()

  Dim AAA(1 To 50000, 1 To 1)
  Dim a As Single, b As Single
  
  Set ACELL = Range(ActiveCell.Offset(, -3), ActiveCell.Offset(, -3).End(xlDown))
  Set CCELL = Range(ActiveCell, ActiveCell.End(xlDown))
  
  a = Timer
  
  Set r = ActiveCell

  AA = ACELL.Count
  CC = CCELL.Count
  
  For i3 = 1 To CC
  
    For i1 = 1 To AA
      Ma = CCELL.Cells(i3) Like ACELL.Cells(i1)

      If Ma Then
        AAA(i3, 1) = ACELL.Cells(i1).Offset(, 1)
        Exit For
      End If
    Next i1

  Next i3
  
  r.Offset(, 1).Resize(50000).Value = AAA
  
  b = Timer
  MsgBox b - a

End Sub

2 hits

【37107】Like関数を使った処理を高速で行うには? カド 06/4/21(金) 20:11 質問
【37108】Re:Like関数を使った処理を高速で行... neptune 06/4/21(金) 20:52 発言
【37109】Re:Like関数を使った処理を高速で行... カド 06/4/21(金) 22:25 発言
【37110】Re:Like関数を使った処理を高速で行... neptune 06/4/21(金) 23:09 回答
【37111】Re:Like関数を使った処理を高速で行... カド 06/4/21(金) 23:53 発言
【37112】Re:Like関数を使った処理を高速で行... Ned 06/4/22(土) 1:24 発言
【37114】Re:Like関数を使った処理を高速で行... Ned 06/4/22(土) 2:47 発言
【37116】Re:Like関数を使った処理を高速で行... カド 06/4/22(土) 7:36 お礼
【37123】Re:Like関数を使った処理を高速で行... Ned 06/4/22(土) 16:09 発言
【37248】Re:Like関数を使った処理を高速で行... カド 06/4/26(水) 21:43 お礼
【37115】Re:Like関数を使った処理を高速で行... カド 06/4/22(土) 7:31 発言

44640 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free