与格式function错误
我在Excel VBA中的Format()函数有问题。 我试图改变date格式的单元格的格式来改变它的显示方式。 然而,每次我调用格式来做到这一点,我得到的错误:“编译错误:错误的参数数量或无效的属性分配。
这里是代码:
Sub test() Dim given given = DateSerial(2012, 10, 11) dateformat = Format(given, "dd/mm/yy") MsgBox given & vbCrLf & dateformat End Sub
这只是一个testingfunction,应该自行运行,并返回“11/10/12”。 此代码适用于其他计算机。 什么可能是错的?
有这个代码的问题,我今天把一个Worksheet_Activate(),把我的头发。 通过将Format更改为VBA.Format来解决此问题
所以试试:
Sub test() Dim given given = DateSerial(2012, 10, 11) dateformat = VBA.Format(given, "dd/mm/yy") MsgBox given & vbCrLf & dateformat End Sub
目前你默认声明given
variables是一个变体。 请将其声明为Date
数据types。 为了安全起见,请确保只使用CDate()
将Date
发送到Format()
以格式化为所需date样式。
另外DateSerialinput应该采用以下格式。 哪个在你的情况下没问题。 ;)
DateSerial(CInt(x), CInt(y), CInt(z)
代码片段:
OPTION EXPLICIT '------------ please add this to your code to begin for better coding Sub test() Dim given as Date '-------- define given as Date type Dim dateformat as Date given = DateSerial(2012, 10, 11) dateformat = Format(CDate(given), "dd/mm/yy") '--------- anyway wrap with CDate() to be sure MsgBox given & vbCrLf & dateformat End Sub
这是因为你可能在你的项目中还有一些Sub
命名的Format
。因此你得到错误。