这有点愚蠢,但我已经被这个简单的陈述困住了一段时间:
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
有人可以帮助我吗?
非常感谢。
最诚挚的问候,
最佳答案
需要使用Set来分配对象:
Set range1 = Worksheets(mysheet).Range(myrange)
关于VBA 字符串范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10403794/