1

我在 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”。此代码适用于其他计算机。有什么问题?

4

3 回答 3

8

我今天在 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
于 2015-11-20T13:57:47.450 回答
2

这是因为您可能还在项目的其他地方Sub命名了一些名称。因此您会收到错误消息。Format

于 2016-05-23T10:40:01.187 回答
0

目前,您given默认将变量声明为变体。请将其声明为Date数据类型。为了安全起见,请确保您仅将Dateusing发送CDate()Format()to 格式作为您想要的日期样式。

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

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
于 2012-11-30T06:00:41.570 回答