格式化功能出错

时间:2012-11-30 05:55:25

标签: excel excel-vba vba

我在excel vba中遇到Format()函数的问题。我试图改变日期格式化单元格的格式以更改其显示方式。但是,每当我调用Format来执行此操作时,我都会收到错误:“编译错误:参数数量错误或属性分配无效。”

这是代码:

Sub test()
     Dim given
     given = DateSerial(2012, 10, 11)
     dateformat = Format(given, "dd/mm/yy")
     MsgBox given & vbCrLf & dateformat

 End Sub

这只是一个测试功能,应该自行运行并返回“11/10/12”。此代码适用于其他计算机。可能有什么不对?

3 个答案:

答案 0 :(得分:5)

如果我今天在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

答案 1 :(得分:2)

这是因为您可能在项目的其他位置还有一些名为 Sub Format 。因此您会收到错误。

答案 2 :(得分:0)

目前,您默认将given变量声明为变体。请将其声明为Date数据类型。为安全起见,请确保只使用Date CDate()Format()发送DateSerial(CInt(x), CInt(y), CInt(z) 格式,作为您想要的日期样式。

DateSerial输入也应采用以下格式。在你的情况下哪个好。 ;)

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

代码段:

{{1}}