我在代码中读取和写入Sheets("sheet1").Range("G2")
数百次的值,并希望用变量替换地址。
我的目标是减少代码中的混乱并简化程序的未来更改。
Sheets("sheet1").Range("G2") = 99
变
myVar = 99
等
这里有一点显示我想要做的事情:
Global myVar As Integer
Public Sub mySub()
'write 1 to cell G2 for reference
Sheets("Sheet1").Range("G2") = 1
myVar = Sheets("sheet1").Range("G2")
'returns value in cell
MsgBox myVar
'try to write 99 to cell G2
myVar = 99
'check if 99 was written to cell g2; cell g2 displays value 1
MsgBox Sheets("Sheet1").Range("G2")
End Sub
如何让myVar
将99
写入单元格G2
?
由于
答案 0 :(得分:2)
更改为使用对象变量。现在,myVar
是一个整数类型。
在顶部执行此操作:
Global myVar As Range
然后改变这一行:
myVar = Sheets("sheet1").Range("G2")
到此:
Set myVar = Sheets("sheet1").Range("G2")
答案 1 :(得分:1)
我不是全球变量的忠实粉丝。我试着尽可能地限制它们。你也可以编写一个函数:
Public Function MyRef as Range
Set MyRef = Sheets("sheet1").Range("G2")
End Function
如果你有多个callite,通过使用一个函数,你可以在函数中设置一个断点,就像你在全局一样。
只是我的偏好。