这有点傻,但我已经在这个简单的声明中停留了一段时间:
Dim range1 as Range
Dim mysheet as String
Dim myrange as String
mysheet = "Sheet1"
range = "A1:A10"
range1 = Worksheets(mysheet).Range(myrange)
我已经测试了我在互联网上找到的所有解决方案,例如this,this和this,但什么都没有。
它总是给我错误:1004“应用程序定义的错误”或“对象变量或未设置”。
我尝试了以下方法:
range1 = ThisWorkbook.Worksheets(mysheet).Range(myrange)
range1 = ActiveWorkbook.Worksheets(mysheet).Range(myrange)
range1 = Sheets(mysheet).Range(myrange) (and the combinations above)
range1 = Worksheets(mysheet).Range(Cells(1,1), Cells(1,10)) (and the combinations with This/Active workbook)
和/或
with This/ActiveWorkbook
range1 = .Worksheets(mysheet).Range(myrange)
end with
没有一个奏效。
这是一个非常愚蠢的事情,但我已经被卡住了一段时间了:s
谁能帮帮我?
真的提前感谢。
最好的问候,
2条答案
按热度按时间33qvvth11#
您需要使用“集”来指定对象:
drnojrws2#
我知道你被卡住了,我提供了一个轻微的卡住变体:
所以可以肯定的是,****使用Set让string 'become' a range...但是直到我在前一行中将“Address”添加到范围字符串中,这才起作用。因此,将光标悬停在rngStr上显示的是范围而不是范围内容。我发现VBA非常厚脸皮/像这样的刺激。希望我有一个更好的概述“为什么”,而不是“如何”有时。