【发布时间】:2016-11-07 00:44:36
【问题描述】:
我有一个用户表单,它的日期和时间戳为 dd/mm/yyyy hh:mm:ss。
它在文本框中以英国格式显示,我使用以下代码生成它:
Dim iNow
Dim d(1 To 6)
Dim i As Integer
iNow = Now
d(3) = Year(iNow)
d(2) = Month(iNow) & "/"
d(1) = Day(iNow) & "/"
d(4) = Hour(iNow) & ":"
d(5) = Minute(iNow) & ":"
d(6) = Second(iNow)
For i = 1 To 6
If d(i) < 10 Then Timestamp = Timestamp & "0"
Timestamp = Timestamp & d(i)
If i = 3 Then Timestamp = Timestamp & " "
Next i
datetextbox.Value = Timestamp
当以下代码块使用以下代码将此信息传输到 Excel 数据库表时,会出现此问题:
'Determine emptyRow in Database Sheet
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(emptyRow, 14).Value = datetextbox.Value
当它进入电子表格单元格时,日期会更改为 MM/DD/YYYY。我在 VBA 和下拉菜单中尝试了数字格式并使用了自定义设置,并检查了两台不同机器上的区域设置是否为 UK。这是我创建的文档的组成部分,它将使用此公式识别相同参考编号的最新记录,然后将数据传输到清理表:
=MAX(IF(Database!$P$2:$P$1437=P488,IF(Database!$P$2:$P$1437=P488,Database!$N$2:$N$1437,"")))
我确实尝试了一个简单的 Now() 声明格式 dd/mm/yyyy/hh:mm:ss 但这也转换为美国格式。
任何帮助将不胜感激。
【问题讨论】:
-
请注意,您也可以使用
Timestamp = Format(Now,"DD/MM/YYYY hh:mm:ss")。如果您的区域格式使用/以外的其他内容作为分隔符,则需要使用额外的“\”:"DD\/MM\/YYYY"。时间戳可能应该是Dimed 为String这样你就不会以Date类型结束,