You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 2010自定义函数公式报错‘输入公式包含错误’的解决方法

解决Excel自定义VBA函数公式输入报错问题

最近在Excel 2010里调用自己写的VBA函数loopThroughFilesCount2时,遇到了和你一样的坑——输入公式=loopThroughFilesCount2("C:\Users\yalinbah\Desktop\20180131_120549\New folder\ayakkabı\","A2")后,直接弹出“The formula you typed contains an error”的提示,折腾了一会儿终于找到问题所在,分享给你:

问题根源&快速修复

1. 公式参数分隔符不匹配

Excel的公式参数分隔符是跟着系统区域设置走的,你的系统应该是把分号;作为参数分隔符,而不是默认的逗号,。原来的公式用逗号分隔两个参数,这就触发了语法错误。

修正后的正确公式:

=loopThroughFilesCount2("C:\Users\yalinbah\Desktop\20180131_120549\New folder\ayakkabı\";A2)

这里注意两个关键点:

  • 把参数之间的逗号改成了分号;
  • 第二个参数A2不需要加引号,因为它是单元格引用,直接写单元格地址即可

2. VBA函数的稳定性优化(可选)

看了你的VBA代码,发现filesCount变量没有显式声明,虽然VBA支持隐式声明,但显式声明能避免很多莫名其妙的bug,建议在函数开头加上变量声明:

Function loopThroughFilesCount2(dirFolder As String, strToFind As String) As Double
    Dim filePath As Variant
    Dim filesCount As Double ' 新增:显式声明计数变量
    filePath = Dir(dirFolder)
    While (filePath <> "")
        If InStr(filePath, strToFind) > 0 Then
            filesCount = filesCount + 1
        End If
        filePath = Dir
    Wend
    loopThroughFilesCount2 = filesCount
End Function

内容的提问来源于stack exchange,提问作者Bahadır Yalın

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:36:18