2014-09-06 54 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

相关问题