当前位置: 首页 > 知识库问答 >
问题:

#姓名?Excel for VBA函数出错

唐兴贤
2023-03-14

我正在制作我的第一个VBA程序,并尝试运行下面的函数。该函数检查第一行的特定命名范围,第一行的值不大于它的前导值,但小于1。

Public Function findPurchase()

Dim CRT As Range
Set CRT = Range("CostRateTable")

Dim existsBetter As Boolean
existsBetter = True

Dim r As Integer
r = 2
Dim c As Integer
c = 4

While existsBetter

    Dim Found As Boolean
    FoundBetter = False

    While Not FoundBetter And c <= CRT.Columns.Count
        If CRT(r, c) > CRT(r, 2) And CRT(r, c) < 1 Then
            FoundBetter = True
        Else
            c = c + 1
        End If
    Wend


    existsBetter = FoundBetter
    If existsBetter Then
        r = r + 1
    End If
Wend

findPurchase = CRT(r, 3)
'MsgBox(findPurchase)
End Function

我知道函数做了它应该做的事情,因为我手动检查了值表,从MsgBox中删除了注释',并在函数遍历表时使用调试工具对函数的每个步骤进行了输入和输出。但是,当我在Excel中使用=findpurchie()引用函数时,我会得到一个#name?错误。当我开始键入它的名称时,函数甚至会显示在函数自动完成框中。当我编写其他函数时,不管是带参数还是不带参数,我都可以很好地引用它们,例如:

Function addtwo()
    addtwo = 1 + 2
End Function

我的函数做错了什么,导致它不能工作?

共有1个答案

吉玉石
2023-03-14

您得到这个错误是因为您有一个与函数同名的模块。

将名称改为find_purchause,那么一切都会好起来:)请参见下图...

 类似资料:
  • 被遗忘的姓名列表 看了一些从来没接触过吉里吉里的朋友使用NVL写的游戏,发觉这个功能竟然很少有人使用。 很多人会一次次地使用类似 【姓名栏】 名字=XXX 颜色=XXX 这样的指令来输入对话人的名字和对应的颜色。 这样做有什么错误呢,其实完全没错,就是……写上几百个难道不觉得烦么……= = 其实NVL提供了简化功能,那就是姓名编辑。 只要设置一次名字和颜色,之后就可以直接从下拉菜单里选择这个名字,

  • #include <stdio.h> #include <pthread.h> void *thread_func(void *p_arg) { while (1) { sleep(10); } } int main(void) { pthread_t t1, t2; pthread_

  • 问题内容: 我想获取联系人姓名,但无法。看完这个答案后,我尝试使用family,给定的和显示的来获取名称,但没有任何效果 / 问题答案: 尝试以下代码以获取特定号码的联系方式 更多详细信息请参见下面的链接https://tausiq.wordpress.com/2012/08/23/android-get-contact- details-id-name-phone-photo/

  • 问题内容: 我有一个客户列表,其名称为全名。我想创建一个将全名作为参数并分别返回名字和姓氏的函数。如果不可能,我可以有两个单独的函数,一个返回名字,另一个返回姓氏。全名列表包含最多三个单词的名称。我想要的是: 全名由两个词组成时。第一个应该是名称,第二个应该是姓氏。 当一个全名由三个词组成时。第一个单词和中间单词应为名字,第三个单词应为姓氏。 例子:- 结果:- 我搜索并找到了无法按预期运行的解决

  • 我试图选择一个拥有最年长员工的经理的名字和姓氏,但是我遇到了一些问题,因为每当我运行这个: 因为where子句设置为查找所有员工,所以它返回所有员工,如果我将其更改为manager,则返回所有经理。我理解为什么会这样,但我真的不知道如何解决我的问题。 我希望结果集返回经理的名字和姓氏以及他们最年长的员工的日期。 我觉得这与我的表是如何设置的无关,因为在我的情况下我无法更改它们,更重要的是我如何编写