我有一个有 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
我在上面代码的 Range 行收到任何错误消息,即“未设置对象变量”错误。
更新
我已根据您的建议更新了我的代码,并修改了变量的声明如下:
选项显式
暗淡 objExcel1,objWorkbook
暗淡 strPathExcel1
暗淡 objSheet6,objSheet3
调暗 IntRow6,IntRow3
昏暗的 IntClmn3
Dim DataCount,ParentColmnCount
昏暗的法尔格
暗淡任务计数器
Dim r As Range Dim s As Variant
但我再次收到错误:“Dim r As Range”行中的预期语句结束