如下图所示
当用vba给excel工作簿添加如上图所示的公式名称“计算文本字符串”,代码如下:
Sub QQ1722187970() Dim oName As Name Dim oWB As Workbook Dim oWK As Worksheet Set oWB = Excel.ThisWorkbook Set oName = oWB.Names.Add(Name:="计算文本字符串", RefersTo:="=EVALUATE(Sheet1!A1)") End Sub
会显示如下图所示的错误:
这是为什么呢?
当把Evaluate去掉后,修改代码为如下:
Sub QQ1722187970() Dim oName As Name Dim oWB As Workbook Dim oWK As Worksheet Set oWB = Excel.ThisWorkbook Set oName = oWB.Names.Add(Name:="计算文本字符串", RefersTo:="=Sheet1!A1") End Sub
运行可以通过,原来当用VBA为excel添加名称时,如果引用的公式里面带有了宏表函数,不能添加A1形式的公式引用,需要改成R1C1形式的公式引用,为此,修改代码如下后可以运行通过了:
Sub QQ1722187970() Dim oName As Name Dim oWB As Workbook Dim oWK As Worksheet Set oWB = Excel.ThisWorkbook '用R1C1形式的公式引用才能添加宏表函数 Set oName = oWB.Names.Add(Name:="计算文本字符串", RefersToR1C1:="=EVALUATE(Sheet1!R1C1)") End Sub
发表评论