2014-09-06 105 views
1

在試圖使用定製VBA函數從Excel工作表單元格,我得到的錯誤: 「你輸入的公式包含一個錯誤」無法從Excel工作表單元格調用VBA函數

然而,當我從VBA調用相同的功能,它工作正常。

VBA功能:

Public Function R1C1_value(RowIndex As Integer, ColIndex As Integer, Optional WorkSheetName As String) As Variant 
    Dim ws As WorkSheet 
    If Trim(WorkSheetName) = "" Then 
     Set ws = ActiveSheet 
    Else 
     Set ws = ActiveWorkbook.Worksheets(WorkSheetName) 
    End If 
    R1C1_value = ws.Cells(RowIndex, ColIndex).Value 
End Function 

VBA函數調用:

Sub R1C1_value_test() 
    Dim res 
    res = R1C1_value(1, 9, "CVP") 
    MsgBox "res: " & res 
End Sub 

Excel函數調用

=R1C1_value(1,9) 

回答

2

的函數名稱是不是在Excel中一個有效的名稱,即使它是在VBA中接受。如果你將它改爲xR1C1_value,你的函數應該可以工作。

+0

謝謝,它的工作。順便說一下,這背後的原因是什麼? – luvlogic 2014-09-06 10:34:08

+0

從Excel幫助中,我不清楚爲什麼這個特定的字符串應該被Excel拒絕。名稱不能與單元格地址衝突,或與Excel內置名稱衝突;但似乎還有其他未經證實的拒絕理由。 – 2014-09-06 10:36:53

+0

我在猜測,因爲R1是一個單元格的有效地址,它不能告訴你是否在談論單元格值 – DLeh 2015-01-21 21:22:39

相關問題