excel vba字符串到目前为止

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解决这个问题,但需要额外的代码来确定哪些单元格是日期,哪些不是,而隐式转换适用于所有类型.

Pat*_*rez 4

请改用日期变量,并始终在 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。它不遵循区域设置。这很好,因为这样可以在异构环境中运行相同的代码。