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 に答える
0

given現在、デフォルトで変数をバリアントとして宣言しています。Dateデータ型で宣言してください。安全のために、必要な日付スタイルとして to 形式にのみDateusingCDate()を送信するようにしてください。Format()

また、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 に答える