使用Excel VBA时出现应用程序定义或对象定义错误
运行下面的宏时,出现应用程序定义或对象定义错误 我想分析数据库工作表中的每一列并搜索该列使用Excel VBA时出现应用程序定义或对象定义错误,vba,excel,Vba,Excel,运行下面的宏时,出现应用程序定义或对象定义错误 我想分析数据库工作表中的每一列并搜索该列 Sub test() Dim FindString As Range Dim Rng As Range Dim i, j As Integer Dim finalcol As Long Worksheets("DB").Select finalcol = Worksheets("DB").Cells(1, Application.Columns.Count).End(x1toleft).colum
Sub test()
Dim FindString As Range
Dim Rng As Range
Dim i, j As Integer
Dim finalcol As Long
Worksheets("DB").Select
finalcol = Worksheets("DB").Cells(1, Application.Columns.Count).End(x1toleft).column
On Error Resume Next
For i = 1 To finalcol
FindString = Cells(1, i).Value
If Trim(FindString) <> "" Then
With Sheets("DB").Range("A:A")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
MsgBox "Nothing found"
End If
End With
End If
Next i
On Error GoTo 0
End Sub
您的x1toleft常量应该是xlToLeft-ex-ell,而不是ex-one。事实上,它没有转换为驼峰案例是一个提示
此外,FindString应该作为字符串而不是范围变暗FindString。如果您在下一行中删除了On Error Resume,那么FindString=Cells1,i.Value行将出现错误,因为您必须将Set与对象变量一起使用。当它运行并且错误被抑制时,作为范围变量的FindString是无效的
我没有发现你的错误,只是找不到任何东西。但是,如果您进行了这些更改,它将要么修复它,要么暴露真正的错误。在任何情况下,您都应该删除错误处理,直到对其进行调试,然后再将其添加回去。您的x1toleft常量应该是xlToLeft-ex-ell,而不是ex-one。事实上,它没有转换为驼峰案例是一个提示
此外,FindString应该作为字符串而不是范围变暗FindString。如果您在下一行中删除了On Error Resume,那么FindString=Cells1,i.Value行将出现错误,因为您必须将Set与对象变量一起使用。当它运行并且错误被抑制时,作为范围变量的FindString是无效的
我没有发现你的错误,只是找不到任何东西。但是,如果您进行了这些更改,它将要么修复它,要么暴露真正的错误。在任何情况下,您都应该删除错误处理,直到对其进行调试,然后再重新添加