2015-11-14 36 views
0

我在我的代碼中讀寫數值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 

我怎樣才能myVar99到細胞G2

謝謝

回答

2

更改爲使用對象變量。目前,myVar是一個整數類型。

在頂部,這樣做:

Global myVar As Range 

然後改變這一行:

myVar = Sheets("sheet1").Range("G2") 

這樣:

Set myVar = Sheets("sheet1").Range("G2") 
+0

這正是我所需要的。謝謝! – karhu

+0

不客氣。 –

1

我不是全局變量的忠實粉絲。我儘量限制他們。你也可以寫一個函數:

Public Function MyRef as Range 
Set MyRef = Sheets("sheet1").Range("G2") 
End Function 

如果您有多個callsites,通過使用功能,您可以在功能設置斷點,其中與全球你不能。

只是我的偏好。

相關問題