0
効率的な質問がここにあります。私は本質的に列内のセルをループして特定の文字列が含まれているかどうかを確認していますが、そのセルには14個の異なる文字列が含まれていない必要があります。私の現在の解決策は、文字列を見つけて、セル上のinstrを使って配列をループすることです。しかし、マクロが実行されているときに何百回もかかることがあります。より良い方法があれば私は好奇心が強い。例えばVBA - 配列内のすべての値の文字列を検索します。
:
NotArr = Array("blah1", "blah2", "blah3", "etc")
For r = 1 to 10
'Let's assume I've already found the first string
For i = 1 to 4
If Not InStr(Cells(r, 1).value, NotArr(i)) > 0 Then
'Do things
End If
Next i
Next r
注:私は、私はおそらくoverthinkingまたはちょうど明白なことを欠けている知っています。私は約6週間@ 10時間VBAに埋葬されており、私の脳が溶けているのを感じることができます。
ありがとうございます!
配列に範囲を入れても、それを速くすることができます。そのため、シートに何度も戻ってくることはありません。あるいは、各セルの値を変数に入れてテストすると、シート上のセルを参照する回数を減らすことができます。 –
ワークシート(マクロで 'Cells()'を使う)に複数回インタラクトすると、マクロが遅くなります。検索する範囲を配列に保存し、配列をマクロで使用して速度を上げることができます。また、手動モードでの計算を続けたり、画面更新をオフにするなどの基本的なこともあります。 –
ありがとう、これは役に立ちます。それはすでに速いです! –