VBA MkDir函数编译错误:参数不可选问题求助
解决VBA中MkDir的“参数不可选”编译错误
出现这个编译错误的核心原因是你的VBA项目中存在和内置MkDir函数重名的自定义过程(Sub/Function),导致编译器把你调用的MkDir识别成了自定义过程,而非VBA自带的创建目录函数,自定义过程可能要求更多参数,因此触发“参数不可选”的错误。
解决步骤:
- 检查并重命名自定义过程:遍历当前VBA项目的所有模块,找到命名为
MkDir的Sub或Function,将其修改为其他名称(比如MyMkDir),避免和内置函数冲突。 - 明确调用内置函数:如果不想修改自定义过程的名字,可以在调用时加上
VBA.前缀,强制指定使用VBA内置的MkDir:Sub Test_Run() VBA.MkDir "C:\ST\temp\AM" End Sub
额外注意事项:
- 确保上级目录
C:\ST\temp确实存在,否则运行时会触发“路径未找到”错误。 - 如果目标文件夹
AM已经存在,运行时会报“文件已存在”错误,可以提前判断避免:Sub Test_Run() If Dir("C:\ST\temp\AM", vbDirectory) = "" Then VBA.MkDir "C:\ST\temp\AM" End If End Sub
内容的提问来源于stack exchange,提问作者vibhor tiwari
相关产品推荐
相关产品推荐

