Excel 在VBScript代码中重复获取“类型不匹配”错误
你能告诉我下面的代码有什么问题吗?在以下代码中重复获取错误,如Excel 在VBScript代码中重复获取“类型不匹配”错误,excel,vbscript,vba,Excel,Vbscript,Vba,你能告诉我下面的代码有什么问题吗?在以下代码中重复获取错误,如类型不匹配: TotalRows=objExcel1.Application.WorksheetFunction.CountA(ob4.Columns(1)) 'MsgBox(TotalRows) ReDim ArrParent(TotalRows - 2) ArrParent=ob4.Range("A2:" & "A" & TotalRows).Value 'here i am getting an erro
类型不匹配
:
TotalRows=objExcel1.Application.WorksheetFunction.CountA(ob4.Columns(1))
'MsgBox(TotalRows)
ReDim ArrParent(TotalRows - 2)
ArrParent=ob4.Range("A2:" & "A" & TotalRows).Value 'here i am getting an error as said above
'Call to the subroutine
ParentPIDNumber ArrParent,ob3,ob2,ob4
代码
Sub FileredOpenProcessToDel(ob3,ob2,ob4)
Dim ColumnToFilter,TotalRows
Dim rngFilter,cel,str,rangesToRemove,x
Dim strToRemove : strToRemove = ""
Dim ArrParent
objExcel1.ScreenUpdating = False
objExcel1.Calculation = -4135 'xlCalculationManual
ColumnToFilter=objExcel1.Application.WorksheetFunction.CountA(ob4.Rows(1)) - 1
ob4.Range(ob4.Cells(1,ColumnToFilter),ob4.Cells(1,ColumnToFilter)).AutoFilter ColumnToFilter, "Open",,,True
'Dim rngFilter as Range
Set rngFilter = objExcel1.Application.Intersect(ob4.UsedRange,ob4.UsedRange.Offset(1),ob4.Columns(1)).SpecialCells(12)'xlCellTypeVisible
'MsgBox(rngFilter.Rows.Count)
REM Do While 1=1
REM 'Msgbox
REM Loop
'msgbox "Filtered range has " & rngFilter.Rows.Count & " rows."
str=""
For each cel in rngFilter
str = str & (cel.row) & ":" & (cel.row) & ","
Next
rangesToRemove = Split(str,",")
For x = UBOUND(rangesToRemove)-1 To LBOUND(rangesToRemove) Step -1
strToRemove = strToRemove & rangesToRemove(x)
If Len(strToRemove) > 200 then
ob4.Range(strToRemove).delete'str & rangesToRemove(x) & ":" & rangesToRemove(x) & ","
strToRemove = ""
Else
strToRemove = strToRemove & ","
End If
Next
If len(strToRemove) > 0 then
strToRemove = Mid(strToRemove, 1, Len(strToRemove) - 1)
'strToRemove = Left(strToRemove, Len(strToRemove) -1)
ob4.Range(strToRemove).delete
End If
ob4.AutoFilterMode = False
objExcel1.ScreenUpdating = True
objExcel1.Calculation = -4105 'xlCalculationAutomatic
TotalRows=objExcel1.Application.WorksheetFunction.CountA(ob4.Columns(1))
MsgBox(TotalRows)
'ReDim ArrParent(TotalRows - 2)
ArrParent=ob4.Range("A2:A" & TotalRows).value2
'MsgBox(ArrParent(1,0))
'Call to the subroutine
ParentPIDNumber ArrParent,ob3,ob2,ob4
End Sub
谢谢,尝试使用Application.Transpose将值存储到1d数组| |
ArrParent=Application.Transpose(ob4.Range("A2:A" & TotalRows).value)
编辑
我相信距离数组总是二维数组。转置用于将数据转换为一维数组
您最初将ArrParent分配给数组(0968),而不是您想要的数组(968)
我认为我的解释是正确的。如果我没有,请有人纠正我。TotalRows的值是多少?@SamWard
TotalRows
是列#1中的数据数。请帮帮我,我真的困在这里了!我的意思是在错误发生之前,TotalRows的值是多少?您可以添加断点并单步执行代码吗?或者在出现错误之前添加Msgbox(TotalRows)。@SamWard请查看我的EDITTry使用Application.Transpose将值存储到2d数组| | | ArrParent=Application.Transpose(ob4.Range(“A2:a”&TotalRows.value)您能告诉我它背后的逻辑吗?Lbound(arrpparent)给我的下限是1
,但为什么不是0
?不确定。我本以为是0