如何在不同的工作表中使用变量范围

how to use variable ranges in different sheets

我为 2 个范围之间的产品编写了代码。其中一个范围在其他范围内,当我试图使其可变时,出现了一些错误。这是代码:

Sub Correlacionar()

Dim col As Integer
Dim random As Range
Dim SDesv As Range
Dim Chole As Range
col = 4

Set Chole = Sheet4.Range("a20:d23")
'Set Chole = Sheet4.Range(Cells(20, 1), Cells(19 + col, col))

Set random = Range(Cells(3, 9), Cells(3, 8 + col))
Set SDesv = Range(Cells(10, 1), Cells(10, col))
SDesv = WorksheetFunction.MMult(random, WorksheetFunction.Transpose(Chole))
Application.CutCopyMode = False
End Sub

我想使用:

Set Chole = Sheet4.Range(Cells(20, 1), Cells(19 + col, col))

而不是:

Set Chole = Sheet4.Range("a20:d23")
Set Chole = Sheet4.Range(Sheet4.Cells(20, 1), _
                         Sheet4.Cells(19 + col, col))

如果您只使用单元格,那么它会引用活动sheet,而不是 Sheet4。

最好 永远不要 使用 RangeCells 而没有特定的工作 sheet 限定词。您的代码不应依赖于任何特定的 sheet 处于活动状态。

类似于

单元格隐式引用 ActiveSheet.Cells

with sheet4
   set Chole = .range(.cells(20,1), cells(19 + cells(19 + col, col))
end with