2012-10-16 54 views
1

我正在使用名稱對象來創建我用於計算工作表中的常量。我的問題是我需要在宏中使用這些相同的常量,但似乎無法創建一個整數 - 它們不斷以字符串形式出現。名稱對象編號在工作表上工作,但在宏中使用時會作爲字符串出現

一塊我的代碼看起來是這樣的:

Private Sub Workbook_Open() 

    'intDocRows 
    ActiveWorkbook.Worksheets("INV").Names.Add Name:="intDocRows", RefersToR1C1 _ 
     :=16 
    ActiveWorkbook.Worksheets("INV").Names("intDocRows").Comment = "" 

End Sub 

然後我需要在計算中使用這個值,但它一直未來通過的「= 16」,而不是16均低於實例。

ThisWorkbook.ActiveSheet.Names("intDocRows").Value ThisWorkbook.ActiveSheet.Names("intDocRows").RefersTo

所有幫助表示讚賞。感謝名單。 它工作正常,如果我在一個單元格中使用它,但它只是在宏中,我有問題。

+0

@Jamie Bull 看來我找到了解決方案。 CInt(Replace(ThisWorkbook.ActiveSheet.Names(「intDocRows」)。Value,「=」,「」)) 您是否同意這是處理它的正確方法?我沒有收到任何錯誤,所以我很高興:D – narfie

+0

這不是最簡單的方法。請參閱下面的答案。 –

回答

0

您可以在您的宏代碼中使用Evaluate(ThisWorkbook.ActiveSheet.Names("intDocRows").Value),這比您的方法更簡單。或者甚至只是Evaluate(Names("intDocRows").Value),除非您在多個工作表中具有相同的名稱範圍。

+0

完美!非常感謝你:) - 我每天都會學到新的東西。 – narfie

相關問題