excel VBA公式引发#名称错误

excel VBA公式引发#名称错误,vba,excel,Vba,Excel,My sub createTrip()在其中创建一个新工作表和一个表 它基本上工作正常,但我对所有数据区域单元格都使用这个函数。该函数计算顶行和左行坐标之间的距离。 函数本身没有错误: =ARCCOS(SIN(E$3*PI()/180)*SIN($C5*PI()/180)+COS(E$3*PI()/180)*COS($C5*PI()/180)*COS(($D5*PI()/180)-(E$4*PI()/180)))*6367.4445 (我还尝试向其添加工作表名称,如=ARCCOS(SIN(Pr

My sub createTrip()在其中创建一个新工作表和一个表

它基本上工作正常,但我对所有数据区域单元格都使用这个函数。该函数计算顶行和左行坐标之间的距离。 函数本身没有错误:

=ARCCOS(SIN(E$3*PI()/180)*SIN($C5*PI()/180)+COS(E$3*PI()/180)*COS($C5*PI()/180)*COS(($D5*PI()/180)-(E$4*PI()/180)))*6367.4445
(我还尝试向其添加工作表名称,如
=ARCCOS(SIN(Processing!E$3*PI()/1…
),但没有成功。)

问题是,完成sub后,所有数据区域单元格中都会出现
#NAME
-错误。 点击单元格,点击公式栏,然后点击返回工作表,即可删除错误,无需更改任何内容。 我试图将一些重新计算行添加到我的sub,但这没有帮助:

ws.EnableCalculation = False
ws.EnableCalculation = True
我还能做什么

公式应用于具有VBA的单元格,如下所示:

Dim Pro As Worksheet
Set Pro = ThisWorkbook.Sheets("Processing")

   // start for loop (ii)

        // if maximum ii is reached:

        With Pro
            Set distanceRange = .Range(.Cells(5, 5), .Cells(ii + 6, ii + 6))
        End With

        distanceRange.Select
        distanceRange.Formula = "=ARCCOS(SIN(E$3*PI()/180)*SIN($C5*PI()/180)+COS(E$3*PI()/180)*COS($C5*PI()/180)*COS(($D5*PI()/180)-(E$4*PI()/180)))*6367.4445"

感谢您的帮助!

使用
ACOS
而不是
ARCCOS


=ACOS(SIN(E$3*PI()/180)*SIN($C5*PI()/180)+COS(E$3*PI()/180)*COS($C5*PI()/180)*COS($D5*PI()/180)-(E$4*PI()/180))*6367.4445
如果将Excel语言设置为与英语不同的语言,这里的问题是使用完全相同的Excel公式

在VBA中,我们必须用英语编写公式(西班牙语示例):

Application.Range(“'Hoja1'!T3”).Formula=“=MODA(O8:O”&row\u set&“)”
Throw\35; Name error

从西班牙语的“MODA”功能到英语的“MODE”功能

Application.Range(“'Hoja1'!T3”).Formula=“=MODE(O8:O”&行集合&“)”
按预期工作


请尝试此函数翻译

您使用的是哪个版本?我使用的是2013,而函数ARCCOS不可用。#NAME?只有当您输入的函数拼写错误或您使用的版本不可用时,才会出现错误。好吧,谢谢。它应该是一个…“点”。如1.5(一个半)-它只适用于一个点。谢谢检查,但我之前已经解决了这个问题。名称错误仍然存在。是否应该
ARCCOS
be
ACOS
?我使用的是Excel 2016-不知道VBA版本。我只是尝试了ACOS而不是ARCCOS,但它仍然不起作用。我也使用xl2016,没有ARCCOS函数。只是
ACOS
ACOSH
。可能还值得注意的是,使用了EN-US样式
6367.4445
而不是
63674445
。下一次,当您获得#名称作为公式结果时,请转到功能区上的公式选项卡,然后在公式审核组下,单击评估公式。然后,您可以单击评估,直到找到问题。在在您的案例中,第一次单击就会发现问题。