如果我想引用Excel VBA中活动工作簿中的范围,则可以说“With Range(”Myrange“)”。我不需要工作表名称。在不指定工作表的情况下指定工作簿中的范围
有时我想参考另一个工作簿中的范围。 “使用MyWorkbook.Range(”Myrange“)”不起作用,因为我必须指定范围所在的工作表。“
有没有任何方法可以在工作簿中引用范围而无需说明哪个工作表范围在?
如果我想引用Excel VBA中活动工作簿中的范围,则可以说“With Range(”Myrange“)”。我不需要工作表名称。在不指定工作表的情况下指定工作簿中的范围
有时我想参考另一个工作簿中的范围。 “使用MyWorkbook.Range(”Myrange“)”不起作用,因为我必须指定范围所在的工作表。“
有没有任何方法可以在工作簿中引用范围而无需说明哪个工作表范围在?
如果您创建一个命名范围并将其范围扩展到工作簿,则可以使用以下命令在任何工作簿中获取一个命名范围。如果找不到名称,显然会出现错误。
wb.Names("Myrange").RefersToRange
刚试过两个打开的工作簿,都有一个名为“MyRange”的范围,并且每次都得到正确的一个。谢谢你Sobigen。 – Zajonc
是的,在您的工作簿中创建一个命名范围(例如:MyRangeName
)。然后在您的代码中使用Range("MyRangeName")
,无论您正在查看哪个工作簿,它都会引用该表单上的那些单元格。
谢谢FreeMan,但是如果我打开两个工作簿,并且每个工作簿都定义了相同的范围名称,则VBA会因对象'_Global'失败'的方法'范围'失败,因为它不知道要使用哪一个。 – Zajonc
MyWorkbook or ThisWorkBook.ActiveSheet? –
否,除非您的意思是该工作簿中的哪个工作表处于活动状态,在这种情况下工作簿具有'ActiveSheet'属性。 (代码怎么可能知道你的意思是哪个范围?) – Rory
Alex和Rory,Excel必须知道如何找到范围,因为如果我在工作簿中的任何工作表的单元格中键入“= MyRange”,Excel可以找到即使MyRange所在的工作表不活动。 – Zajonc