このエラーが発生します:
タイプの不一致:'objExcel.Cells(...)。Value'
このプログラムの実行中:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("myFile.xlsx")
strMach = "string1,string2,string3"
arrMach = Split(strMach, ",")
for j = 0 to Ubound(arrMach)
remove(arrMach(j))
Next
Function remove(strValue)
i = 1
removeCounter = 0
Do Until objExcel.Cells(i, 2).Value = ""
If objExcel.Cells(i, 2).Value = strValue Then
Set objRange = objExcel.Cells(i, 2).EntireRow
objRange.Delete
i = i - 1
removeCounter = removeCounter + 1
End If
i = i + 1
Loop
wscript.echo strValue & " - REMOVED!"
wscript.echo "Removed " & removeCounter & " results."
End Function
このプログラムは、既存のすべての行から文字列を検索するために使用され、見つかった場合は、行全体が削除されます。
エラーは次の行から発生しているようです。
Do Until objExcel.Cells(i, 2).Value = ""
約50行のExcelファイルでこれをテストしてみましたが、正常に動作します。しかし、約25,000行のExcelファイルで使用すると、常にエラーが発生します。誰か助けてもらえますか?ファイルのサイズは実行時にコードに影響しますか?
ありがとうございました。
編集: 私はテストのために50,000行以上のExcelシートでこれを試しましたが、うまくいきました。ただし、実際のファイルで使用する場合は常に同じエラーが表示されます。上記のコードでは適切に処理できない、注意すべき特殊文字/値はありますか?再度、感謝します。