VBA Excel:使用Range.Find方法时出现错误1004
我正在学习范围。查找方法。我在Excel的a列中有一列字母(a到t),从第1行到第20行 此代码:VBA Excel:使用Range.Find方法时出现错误1004,excel,range,vba,Excel,Range,Vba,我正在学习范围。查找方法。我在Excel的a列中有一列字母(a到t),从第1行到第20行 此代码: Public Sub MyFind3() 'Accepts an input for a fluid length search field (column A) Dim WhatToFind As String Dim DataRange As Range Set DataRange = Range("A1", Range("A1").End(xlDown)) WhatToFind = In
Public Sub MyFind3()
'Accepts an input for a fluid length search field (column A)
Dim WhatToFind As String
Dim DataRange As Range
Set DataRange = Range("A1", Range("A1").End(xlDown))
WhatToFind = InputBox("Enter text to search for:", "Find Text")
Range(DataRange).Find(WhatToFind).Select
End Sub
…在我收到此错误时一直工作到最后一行:
“运行时错误1004:应用程序定义或对象定义错误”。
它找不到“查找匹配项”。
有人能指出我的错误吗?非常感谢。将最后一行更改为:
DataRange.Find(WhatToFind).Select
DataRange
已经是Range
对象,因此不需要列为Range(DataRange)
将最后一行更改为:
DataRange.Find(WhatToFind).Select
DataRange
已经是Range
对象,因此不需要列为Range(DataRange)
将最后一行更改为:
DataRange.Find(WhatToFind).Select
DataRange
已经是Range
对象,因此不需要列为Range(DataRange)
将最后一行更改为:
DataRange.Find(WhatToFind).Select
DataRange
已经是一个Range
对象,因此不需要列为Range(DataRange)
。Find()
返回通常要分配给范围变量的范围。我会像这样稍微修改您的代码:
Public Sub MyFind3()
'Accepts an input for a fluid length search field (column A)
Dim WhatToFind As String
Dim DataRange As Range
WhatToFind = InputBox("Enter text to search for:", "Find Text")
Set DataRange = Range("A1", Range("A1").End(xlDown)).Find(What:=WhatToFind)
if not DataRange is Nothing then
DataRange.select
else
msgbox (WhatToFind & " wasn't found")
end if
End Sub
这使您能够处理“未找到”情况,并且您现在可以使用范围变量做其他事情
另外,请注意,当您调用.Find()
时,它将使用最后的任何设置执行,因此设置更多的参数,例如LookIn
、LookAt
、和MatchCase
将有助于确保此搜索完全按照您的意愿进行。查找()
返回通常要分配给范围变量的范围。我会像这样稍微修改您的代码:
Public Sub MyFind3()
'Accepts an input for a fluid length search field (column A)
Dim WhatToFind As String
Dim DataRange As Range
WhatToFind = InputBox("Enter text to search for:", "Find Text")
Set DataRange = Range("A1", Range("A1").End(xlDown)).Find(What:=WhatToFind)
if not DataRange is Nothing then
DataRange.select
else
msgbox (WhatToFind & " wasn't found")
end if
End Sub
这使您能够处理“未找到”情况,并且您现在可以使用范围变量做其他事情
另外,请注意,当您调用.Find()
时,它将使用最后的任何设置执行,因此设置更多的参数,例如LookIn
、LookAt
、和MatchCase
将有助于确保此搜索完全按照您的意愿进行。查找()
返回通常要分配给范围变量的范围。我会像这样稍微修改您的代码:
Public Sub MyFind3()
'Accepts an input for a fluid length search field (column A)
Dim WhatToFind As String
Dim DataRange As Range
WhatToFind = InputBox("Enter text to search for:", "Find Text")
Set DataRange = Range("A1", Range("A1").End(xlDown)).Find(What:=WhatToFind)
if not DataRange is Nothing then
DataRange.select
else
msgbox (WhatToFind & " wasn't found")
end if
End Sub
这使您能够处理“未找到”情况,并且您现在可以使用范围变量做其他事情
另外,请注意,当您调用.Find()
时,它将使用最后的任何设置执行,因此设置更多的参数,例如LookIn
、LookAt
、和MatchCase
将有助于确保此搜索完全按照您的意愿进行。查找()
返回通常要分配给范围变量的范围。我会像这样稍微修改您的代码:
Public Sub MyFind3()
'Accepts an input for a fluid length search field (column A)
Dim WhatToFind As String
Dim DataRange As Range
WhatToFind = InputBox("Enter text to search for:", "Find Text")
Set DataRange = Range("A1", Range("A1").End(xlDown)).Find(What:=WhatToFind)
if not DataRange is Nothing then
DataRange.select
else
msgbox (WhatToFind & " wasn't found")
end if
End Sub
这使您能够处理“未找到”情况,并且您现在可以使用范围变量做其他事情
另外,请注意,当您调用
.Find()
时,它将使用最后的设置执行,因此设置更多的参数,例如LookIn
、LookAt
、和MatchCase
将有助于确保此搜索完全按照您的意愿进行。谢谢弗里曼。对于“找不到”陷阱,我打算使用如下内容:如果DataRange为Nothing,那么MsgBox(WhatToFind&“not found.”)退出Sub-Else DataRange。选择End If…但您的版本看起来更整洁。再次感谢你。顺便说一句,很抱歉,我无法将其格式正确。谢谢你,弗里曼。对于“找不到”陷阱,我打算使用如下内容:如果DataRange为Nothing,那么MsgBox(WhatToFind&“not found.”)退出Sub-Else DataRange。选择End If…但您的版本看起来更整洁。再次感谢你。顺便说一句,很抱歉,我无法将其格式正确。谢谢你,弗里曼。对于“找不到”陷阱,我打算使用如下内容:如果DataRange为Nothing,那么MsgBox(WhatToFind&“not found.”)退出Sub-Else DataRange。选择End If…但您的版本看起来更整洁。再次感谢你。顺便说一句,很抱歉,我无法将其格式正确。谢谢你,弗里曼。对于“找不到”陷阱,我打算使用如下内容:如果DataRange为Nothing,那么MsgBox(WhatToFind&“not found.”)退出Sub-Else DataRange。选择End If…但您的版本看起来更整洁。再次感谢你。顺便说一句,很抱歉,我无法把它转换成正确格式的表格。我看了15分钟都没有发现它。非常感谢!我很惊讶,虽然它给出了一个错误信息-不是很宽容。再次感谢你。我看了15分钟都没发现。非常感谢!我很惊讶,虽然它给出了一个错误信息-不是很宽容。再次感谢你。我看了15分钟都没发现。非常感谢!我很惊讶,虽然它给出了一个错误信息-不是很宽容。再次感谢你。我看了15分钟都没发现。非常感谢!我很惊讶,虽然它给出了一个错误信息-不是很宽容。再次感谢你。