Windows 10 专业版,区域设置为英国英语。 在 Excel VBA 中,我有一个字符串“02/05/2017 16:30” 在英国,这意味着“2017 年 5 月 2 日 16:30”
但 VBA 以某种方式将其转换为美国格式,并在单元格中放入“05/02/2017 16:30”
VBA代码是这样的
Dim sField As String
sField = "02/05/2017 16:30"
ws.Cells(1,1) = sField
我可以使用 CDate 来解决这个问题,但是 CDate 但这需要额外的代码来确定哪些单元格是日期,哪些不是,而隐式转换适用于所有类型。
最佳答案
改用日期变量,并始终在 VBA 中以 MDY 形式提供日期。
Dim sField As Date
sField = #05/02/2017 16:30#
ws.Cells(1,1) = sField
据我所知,在 VBA 中,您必须始终按照“美国方式”工作,日期为 MDY。它不遵循区域设置。这很好,因为这样可以在异构环境中运行相同的代码。
关于string - excel vba 迄今为止的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47866311/