我正在尝试保存事件工作簿,但当我使用以下代码时,我不断收到错误“编译错误:预期函数或变量”,并突出显示“格式”一词。
这让我难以置信,因为我在另一个宏中使用了完全相同的函数和格式,并且它完美地保存了文件。我还确保它们已经定义了相同类型的变量...
这是一行代码
ActiveWorkbook.SaveAs Filename:=SavedPath & format(Date, "mmddyyyy") & " 4512 GLUpload.xlsm"
变量savedpath很好,因为当我在没有格式部分的情况下运行这一行时,它会保存文件,但不知道为什么会搞砸。在我的其他代码中还注意到,格式是大写的,但它不在这里。
最佳答案
您收到的编译器错误表明 VBA 需要一个可赋值的值(文字、变量或函数的返回值)。这意味着等号右侧的语句中的标识符之一不属于这些类别。因此,要么 SavedPath
在某处定义为 Sub SavedPath()
,或者在某处定义了 Sub Format(arg1, arg2)
(如果它如果参数数量不同,您将收到“参数数量错误或属性分配无效”错误)。第二条线索(在注释中)是将 format
更改为强类型 Format$
会出现“类型声明字符与声明的数据类型不匹配”错误。这表明编译器没有将符号 format
视为函数调用(Format$()
是 Format()
的强类型版本) 。解决方案是找出 VBA 函数名称的错误使用并重新命名。
这是一个很好的例子,说明了为什么避免使用 VBA 关键字和函数名称是一种好的做法。
关于使用格式(日期)函数保存文件时出现VBA错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38775512/