将工作表和单元格设置为变量

时间:2012-03-28 11:49:20

标签: excel-vba vba excel

我是VBA编码的新手。假设我正在从Sheet3.Cell(23,4)中检索值的值,在VBA代码中是否有任何方法可以将其设置为变量?

例如,我更改了接口并让值保持在Sheet4.Cell(20,1),我的代码中的任何地方都引用Sheet3.Cell(23,4)需要更改为Sheet4.Cell( 20,1)。我在想是否有针对这种情况编码VBA的最佳做法?

2 个答案:

答案 0 :(得分:7)

是。为此,请确保声明工作表

例如

以前的代码

Sub Sample()
    Dim ws As Worksheet

    Set ws = Sheets("Sheet3")

    Debug.Print ws.Cells(23, 4).Value
End Sub

新代码

Sub Sample()
    Dim ws As Worksheet

    Set ws = Sheets("Sheet4")

    Debug.Print ws.Cells(23, 4).Value
End Sub

答案 1 :(得分:5)

是的,将单元格设置为RANGE对象一次,然后在代码中使用该RANGE对象:

Sub RangeExample()
Dim MyRNG As Range

Set MyRNG = Sheets("Sheet1").Cells(23, 4)

Debug.Print MyRNG.Value

End Sub

或者,您可以简单地将该单元格的值存储在内存中并引用实际值,如果这是您真正需要的。如果是数字,那么该变量可以是Long或Double或Single;或者是String:

Sub ValueExample()
Dim MyVal As String

MyVal = Sheets("Sheet1").Cells(23, 4).Value

Debug.Print MyVal

End Sub