设置vbs中的范围不按预期工作

时间:2018-03-14 00:46:04

标签: excel-vba vba excel

我有两个范围声明:

Set s1 = Sheets("Key").Range("A7:A28")
Set s1 = Sheets("Key").Range(Cells(7, 1), Cells(28, 1)

第一个语句适用于“Key”表是否处于活动状态。 第二个语句仅在“Key”处于活动状态时才有效

第二个语句导致运行时错误“1004”: 应用程序定义或对象定义错误

使用行/列语法设置范围的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

声明您的工作表,然后将其与您的范围Cells()对象一起使用:

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Key")

With ws
    Set s1 = .Range("A7:A28")
    Set s1 = .Range(.Cells(7, 1), .Cells(28, 1))
end with

或者如果您不想声明工作表,这也可以使用:

With ThisWorkbook.Worksheets("Key")
    Set s1 = .Range("A7:A28")
    Set s1 = .Range(.Cells(7, 1), .Cells(28, 1))
end with

请注意,我已将您的Cells()(指的是 ActiveSheet )更改为.Cells()(现在指的是 With Statement )。