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

Zeitw文本框日期格式化VBA代码报错:输入前导0日期触发参数错误

问题原因与解决方案

错误根源

你触发的「Invalid Procedure Call and Argument」错误,完全是因为InStr函数的参数顺序写错了。

VBA中InStr指定起始搜索位置的正确语法是:

InStr(起始位置, 待搜索字符串, 目标子串)

而你写的InStr(inputt, ".", 3)把参数顺序搞反了:把待搜索字符串inputt当成了起始位置参数,系统会尝试将其强制转换成数值。当输入带前导0的纯数字字符串(比如输入过程中的01032),转换后的数值远大于第二个参数"."的长度(仅1个字符),直接导致起始位置超出字符串范围,触发参数越界错误。

修复代码

把报错的那行代码修改为:

ElseIf Len(inputt) = 5 And InStr(3, inputt, ".") = 0 Then

额外注意事项

  • 确保inputt始终以字符串类型处理,避免被自动转换成数值(否则前导0会丢失,影响日期格式判断)。
  • 后续处理日期时,建议用CDate转换前先确认字符串格式,或者直接用字符串操作补全分隔符,再验证有效性。

内容的提问来源于stack exchange,提问作者Blghn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:48:08