Range.Find 直接来自 MSDN 不工作,应用程序定义或对象定义的错误
Range.Find straight from MSDN not working, Application-defined or object-defined error
我已经坚持这个几个小时了,.find 似乎在同一程序的早期版本中对我有用。我不确定 excel 文件在 range.find 工作时(2010 年或 2003 年)保存的是什么版本,但它现在在 Excel 2010 年不工作。为了为了消除我的代码的其他部分作为错误的来源,我从 MSDN 中复制并粘贴了以下内容到我的编辑器中,将其放入自己的子例程中,声明变量,并且仍然得到相同的 "Application-defined or object-defined error"代码是 运行。这是在线产生错误的代码,我已经注意到我偏离 msdn:
的地方
Sub StraitFromMSDN()
'Only line that was changed:
'With Worksheets(1).Range("a1:a500")
With ActiveSheet.Range("a1:a500")
'These two lines were added:
Dim c As Range
Dim firstAddress As String
'Error occurs on the following line:
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
有谁知道为什么会这样?我对 vba 比较陌生,所以我可能遗漏了一些简单的东西。提前致谢!
编辑:
取出下半部分还是报错:
Sub StraitFromMSDN()
Dim c As Range
With ActiveSheet.Range("a1:a500")
'Error occurs here:
Set c = .Find(What:=2, LookIn:=xlValues)
End With
End Sub
Sub StraitFromMSDN()
Dim c As Range
With ActiveSheet.Range("a1:a500")
If Not .Find(What:=2, LookIn:=xlValues) Is Nothing Then 'test if there is any value you are looking for
Set c = .Find(What:=2, LookIn:=xlValues)
End If
End With
End Sub
这只会找到一个包含值 2 的单元格。如果您想找到所有单元格,请告诉我,这背后的代码有点复杂。
重新启动 Excel 解决了问题。这是一个简单明了的故障,但不确定是什么导致了这种行为。感谢所有帮助过的人。
我已经坚持这个几个小时了,.find 似乎在同一程序的早期版本中对我有用。我不确定 excel 文件在 range.find 工作时(2010 年或 2003 年)保存的是什么版本,但它现在在 Excel 2010 年不工作。为了为了消除我的代码的其他部分作为错误的来源,我从 MSDN 中复制并粘贴了以下内容到我的编辑器中,将其放入自己的子例程中,声明变量,并且仍然得到相同的 "Application-defined or object-defined error"代码是 运行。这是在线产生错误的代码,我已经注意到我偏离 msdn:
的地方Sub StraitFromMSDN()
'Only line that was changed:
'With Worksheets(1).Range("a1:a500")
With ActiveSheet.Range("a1:a500")
'These two lines were added:
Dim c As Range
Dim firstAddress As String
'Error occurs on the following line:
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
有谁知道为什么会这样?我对 vba 比较陌生,所以我可能遗漏了一些简单的东西。提前致谢!
编辑:
取出下半部分还是报错:
Sub StraitFromMSDN()
Dim c As Range
With ActiveSheet.Range("a1:a500")
'Error occurs here:
Set c = .Find(What:=2, LookIn:=xlValues)
End With
End Sub
Sub StraitFromMSDN()
Dim c As Range
With ActiveSheet.Range("a1:a500")
If Not .Find(What:=2, LookIn:=xlValues) Is Nothing Then 'test if there is any value you are looking for
Set c = .Find(What:=2, LookIn:=xlValues)
End If
End With
End Sub
这只会找到一个包含值 2 的单元格。如果您想找到所有单元格,请告诉我,这背后的代码有点复杂。
重新启动 Excel 解决了问题。这是一个简单明了的故障,但不确定是什么导致了这种行为。感谢所有帮助过的人。