我是VBA编码的新手。假设我正在从Sheet3.Cell(23,4)中检索值的值,在VBA代码中是否有任何方法可以将其设置为变量?
例如,我更改了接口并让值保持在Sheet4.Cell(20,1),我的代码中的任何地方都引用Sheet3.Cell(23,4)需要更改为Sheet4.Cell( 20,1)。我在想是否有针对这种情况编码VBA的最佳做法?
答案 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