与格式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 

目前你默认声明givenvariables是一个变体。 请将其声明为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 。因此你得到错误。