如何写入定义为变量的单元格地址?

时间:2015-11-14 17:35:59

标签: excel vba excel-vba

我在代码中读取和写入Sheets("sheet1").Range("G2")数百次的值,并希望用变量替换地址。

我的目标是减少代码中的混乱并简化程序的未来更改。

Sheets("sheet1").Range("G2") = 99myVar = 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

如何让myVar99写入单元格G2

由于

2 个答案:

答案 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,通过使用一个函数,你可以在函数中设置一个断点,就像你在全局一样。

只是我的偏好。