如何在不同的工作表中使用变量范围
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。
最好 永远不要 使用 Range
或 Cells
而没有特定的工作 sheet 限定词。您的代码不应依赖于任何特定的 sheet 处于活动状态。
类似于
单元格隐式引用 ActiveSheet.Cells
with sheet4
set Chole = .range(.cells(20,1), cells(19 + cells(19 + col, col))
end with
我为 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。
最好 永远不要 使用 Range
或 Cells
而没有特定的工作 sheet 限定词。您的代码不应依赖于任何特定的 sheet 处于活动状态。
类似于
单元格隐式引用 ActiveSheet.Cells
with sheet4
set Chole = .range(.cells(20,1), cells(19 + cells(19 + col, col))
end with