VBA 字符串范围

标签 vba excel

这有点愚蠢,但我已经被这个简单的陈述困住了一段时间:

    Dim range1 as Range
    Dim mysheet as String
    Dim myrange as String

    mysheet = "Sheet1"
    range = "A1:A10"

range1 = Worksheets(mysheet).Range(myrange)

我已经测试了在互联网上找到的所有解决方案,例如 this , thisthis ,但什么也没有。

它总是给我错误: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/

相关文章:

excel - 按下 "Refresh All"后如何运行VBA代码

excel - 事件屏幕上的 VBA 中心用户表单

excel - 在Excel VBA中重命名文件

vba - 为什么我的范围不粘贴?

sql-server - 测试 SQL Server 连接

excel - 实现更改事件以检查文本框值的更改并启用 "apply"按钮

vba - 清理收藏品的理想方式

python - Pandas 数据框。添加一个额外的行标题合并所有列

vba - 在 VBA 中引用窗口对象

excel - Delphi - 将 ALT 键码传递给 Excel