use*_*966 5 string excel vba date excel-vba
Windows 10 Pro,英国英语区域设置.在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
Run Code Online (Sandbox Code Playgroud)
我可以使用CDate解决这个问题,但需要额外的代码来确定哪些单元格是日期,哪些不是,而隐式转换适用于所有类型.
请改用日期变量,并始终在 VBA 中以 MDY 形式提供日期。
Dim sField As Date
sField = #05/02/2017 16:30#
ws.Cells(1,1) = sField
Run Code Online (Sandbox Code Playgroud)
据我所知,在 VBA 中,您必须始终按照“美国方式”工作,日期为 MDY。它不遵循区域设置。这很好,因为这样可以在异构环境中运行相同的代码。