Excel 在查找模式下使用变量定义范围

Excel 在查找模式下使用变量定义范围,excel,vba,Excel,Vba,我很确定这是可行的,但是,我有一个变量“DataRowStart”,它由用户通过一个输入框分配一个值,例如“a”,有没有办法使用该变量定义搜索的开始?我需要这个,因为数据搜索的位置将随着使用的不同而变化 我目前有这行代码用于搜索 LastRowNumber = Range("DataRowStart:DataRowStart").Find(What:="", after:=Range(Cells(DataColumn, 1)), searchdirection:=xlPrevious).Row

我很确定这是可行的,但是,我有一个变量“DataRowStart”,它由用户通过一个输入框分配一个值,例如“a”,有没有办法使用该变量定义搜索的开始?我需要这个,因为数据搜索的位置将随着使用的不同而变化

我目前有这行代码用于搜索

LastRowNumber = Range("DataRowStart:DataRowStart").Find(What:="", after:=Range(Cells(DataColumn, 1)), searchdirection:=xlPrevious).Row
每当我运行代码时,我就会得到

对象“全局”的方法“范围”失败

错误

我在运行该函数的宏中将变量定义为
全局DataRowStart as String

我发现这是最好的解决方案,因为这部分代码是以用户形式运行的

有人能给我指出解决这个问题的正确方向吗

非常感谢


标记您需要将变量
DataRowStart
置于
之外

更改:

LastRowNumber = Range("DataRowStart:DataRowStart")

而且:

Range(Cells(1, DataColumn)
致:


“A”是通过
输入框获得的吗?假设是
?我希望像“A1”
DataRowStart
这样的全范围引用是文本字符串的一部分,而不是变量。@ShaiRado是“A”“用于确定搜索哪一列data@QHarr如果我将
DataRowStart
换成一个,程序运行时不会出现问题当我运行此代码时,我现在会得到“应用程序定义或对象错误”,它被认为来自
范围(单元格(DataColumn,1))
部分。我这样想对吗?忽略这个错误输入了一个字母不幸的是,当我运行这个代码时,在这个字母错误输入之后,我仍然得到了saame方法的范围。。。error@CptGoodar是的,你说得对。请参见编辑的代码。我根据
DataColumn
表示一个
Column
,对其进行了更改。该列解决了此问题,现在正在按预期工作。非常感谢你,
Range(Cells(1, DataColumn)
Range(DataColumn & 1)