我是新来的VBA代码,并在工作中的一个项目,我只好赶紧教我一些VBA设置范围变量。我试图重写一些代码,以尽可能避免使用.select命令。问题在于,我将范围定义为变量并尝试设置它。不能没有选择表第一
Dim SearchRng As Range
Set SearchRng = Sheets("Employee Data").Range("B9", Range("B9").End(xlDown).End(xlToRight))
当代码的该位被运行的活性片是不是“员工数据”片材,我总是得到一个“运行时错误‘1004’:应用程序定义或对象定义的错误”。
我发现,如果我选择了“员工数据”表先再设置范围,则代码工作。即
Dim SearchRng As Range
Worksheets("Employee Data").Select
Set SearchRng = Range("B9",Range("B9").End(xlDown).End(xlToRight))
然而,这却失败了试图避免.select命令的目的。
任何人都可以解释为什么代码的第一位不工作,但代码然后第二位呢。
让我知道,可能需要什么额外的信息来帮助解决这个问题(我是新来的VBA所以不能确定需要什么)。
什么是您要定义的范围内?从“B9”直到哪里?什么单元格是'Range(“B9”)。End(xlDown).End(xlToRight)'假设是?在我的答案下面的代码将运行没有错误(不知道你想要什么范围,但) –
谢谢。我所指的范围基本上是一个存储在“员工数据”表中的数据库。 B9是左上方的单元格,我希望选择整个数据库,因此.End命令。目的是定义范围,以便可以进行搜索。 –
你测试了我的代码吗?你是否得到了你需要的结果? –