我试图保存一个活动工作簿,但当我使用以下代码时,我不断收到错误"compile error:expected function or variable",并突出显示单词"format"。
这让我难以置信,因为我在另一个宏中使用了完全相同的函数和格式,它完美地保存了文件。我还确保他们已经定义了相同类型的变量。。。
这是单行代码
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关键字和函数名是一种很好的做法。