200列のExcelシートがあります。現在、行数は3500です。したがって、各行の任意の列内に文字列が存在する場合は、文字列を検索する必要があります。プロセスをより太くするために、ループ手法の代わりに代替手段を探しています。そのようなものはありますか?
IntRow6 = 2
DataCount = 0
Do While objSheet6.Cells(IntRow6,1).Value <> ""
For DataCount = 0 to UBound(VMHArray)
IntClmn3 = 1
Do While 1 = 1
If objSheet6.Cells(IntRow6,IntClmn3).Value = VMHArray(DataCount) Then
objSheet6.Cells(IntRow6,IntClmn3+2).Value=objSheet6.Cells(IntRow6,IntClmn3+5).Value
Exit Do
End If
IntClmn3 = IntClmn3 + 1
Loop
Next
IntRow6 = IntRow6 + 1
Loop
上記は時間がかかるので、より高速な検索を実行できる同等のVBScriptコードを探しています。
編集:
ParentColmnCount=ParentColmnCount-1
IntRow6=2
DataCount=0
Do While objSheet6.Cells(IntRow6,1).Value <> ""
For DataCount=0 to UBound(VMHArray)
If objSheet6.Range(objSheet6.Cells(IntRow6,1),objSheet6.Cells(IntRow6,ParentColmnCount)).Find(VMHArray(DataCount)) <> Nothing Then
MsgBox("Hi")
End If
Next
IntRow6=IntRow6+1
Loop
上記のコードの範囲行に「オブジェクト変数が設定されていません」というエラーが表示されます。
アップデート
私はあなたの提案に従ってコードを更新し、変数の宣言を以下のように変更しました:
オプション明示
薄暗いobjExcel1、objWorkbook
薄暗いstrPathExcel1
薄暗いobjSheet6、objSheet3
Dim IntRow6、IntRow3
Dim IntClmn3
Dim DataCount、ParentColmnCount
薄暗いファルグ
薄暗いTaskCounter
Dim r As Range Dim s As Variant
しかし、私は再びエラーを受け取ります:「DimrAsRange」の行の「Expectedendofstatement」