1

3つのテキストボックスがあります(それぞれ日付、時間、分)

最終日/月/年時:分をExcelのセルに貼り付け、日付としてフォーマットする必要があります

sDate = Format(myDate.Value & txtHour.Value & txtMinute.Value, "MM/DD/YYYY HH:MM")
.Cells(iRow, iCol + 1).Value = sDate

ここで私を助けてくれませんか?頭をかいてます。

こんな感じで出てきます。

2012年4月26日1437

4

2 に答える 2

1

日付がすでに 04/26/27 の形式になっている場合は、次のようなことができるはずです

sDate = myDate.Value & " " & txtHour.Value & ":" & txtMinute.Value
.Cells(iRow, iCol + 1).Value = sDate

また

sDate = Format(myDate.Value, "MM/DD/YYYY") & " " & txtHour.Value & ":" & txtMinute.Value
.Cells(iRow, iCol + 1).Value = sDate
于 2012-04-26T21:56:51.323 に答える
0

これが最もクリーンな方法です。文字列の連結は必要ありません。

Dim d As Date
d = CDate(myDate.Value) + TimeSerial(txtHour.Value, txtMinute.Value, 0)
Range("A1") = d
Range("A1").NumberFormat = "mm/dd/yyyy hh:mm"

' If you *really* need the date as a string (which is rarely the case):
Dim s As String
s = Format(d, "mm/dd/yyyy hh:mm")

唯一の弱点はCDate(myDate.Value)。VBA ドキュメントから:

CDateは、システムのロケール設定に従って日付形式を認識します。認識されている日付設定以外の形式で提供された場合、日、月、年の正しい順序が決定されない場合があります。

たとえば、日付をdd/mm/yyyyではなく formatで入力mm/dd/yyyyするmyDateと、正しく機能しません。Zaider のソリューションにも同様の弱点があることに注意してください。

于 2012-04-27T08:18:43.453 に答える