Excel VBA質問箱 IV

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

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


3837 / 76735 ←次へ | 前へ→

【78527】Re:複数の文字列を置換したい
発言  β  - 16/10/29(土) 14:25 -

引用なし
パスワード
   ▼naoko さん:

>また、関数かませるとすっごく重くなるのでダメですね。

いえいえ、提案しているのは、最終的には式は残らず、かつ
【すごく軽い】処理方式です。

ただ、アップされたコード、B列処理ですけど、コメント内に

>置換されては困る列もあるので、一気には無理だとわかりました。

とあるので、対象列は、複数列なんだと思われます。
まぁ、それならそれで、その列に対してループ処理をかければいいのですが、
以下のコードは B列のみ対象。 ためしにデータをマッチするもの中心に
3000件で動かしますと、私の環境で 0.05秒ぐらいの処理ですね。

条件として List というシートに置き換え表を準備しておきます。
1行目から A列が 

クリニック
ケアミックス病院
回復期病院



B列に

8
7
4



(A列の値昇順にしてください)

作業列を使っています。コードでは C列にしていますが、どの列でもOKです。

Sub Sample()
  Dim t As Double
  t = Timer
  
  Application.ScreenUpdating = False
  
  With Sheets("Sheet1")
    With .Range("B1", .Range("B" & Rows.Count).End(xlUp)).Offset(, 1)
      .Formula = "=IFERROR(IF(INDEX(List!A:A,MATCH(B1,List!A:A))=B1,VLOOKUP(B1,List!A:B,2),B1),B1)"
      .Offset(, -1).Value = .Value
      .ClearContents
    End With
  End With

  Application.ScreenUpdating = True
  
  MsgBox Timer - t
  
End Sub
5 hits

【78520】複数の文字列を置換したい naoko 16/10/28(金) 11:03 質問[未読]
【78521】Re:複数の文字列を置換したい β 16/10/28(金) 11:20 発言[未読]
【78522】Re:複数の文字列を置換したい β 16/10/28(金) 11:34 発言[未読]
【78523】Re:複数の文字列を置換したい naoko 16/10/28(金) 14:58 お礼[未読]
【78524】Re:複数の文字列を置換したい マナ 16/10/29(土) 10:44 発言[未読]
【78525】Re:複数の文字列を置換したい マナ 16/10/29(土) 11:42 発言[未読]
【78526】Re:複数の文字列を置換したい マナ 16/10/29(土) 12:37 発言[未読]
【78527】Re:複数の文字列を置換したい β 16/10/29(土) 14:25 発言[未読]
【78529】Re:複数の文字列を置換したい sy 16/10/30(日) 11:26 発言[未読]
【78530】Re:複数の文字列を置換したい β 16/10/30(日) 12:00 回答[未読]
【78531】Re:複数の文字列を置換したい sy 16/10/30(日) 17:30 発言[未読]
【78528】Re:複数の文字列を置換したい β 16/10/29(土) 14:33 発言[未読]

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