从空的 dtPicker 值开始,然后在按下提交按钮后更改格式

Start with empty dtPicker Value, then change format after pressing sumbit button

我真的很难解决这个问题,我浏览了 Google 但没有找到适合我的解决方案。是这样的(使用US Office 2016并添加了mscomct2.ocx);

加载 Excel 也会加载 UserForm1。 在其中,我有一个 'DateFrom' 和 'DateTo' 使用 DateTimePicker。

在启动时,我希望两者都显示为空(不能使用复选框)。选择适当的 'DateFrom' 和 'DateTo' 后,用户窗体中显示的格式为 .dtpLongDate(从 dtPicker 属性框中设置)。

按下提交按钮时,我需要将 DateTimePicker 格式从 .dtpLongDate 更改为自定义格式 "yyyy-MM-dd",这样我就可以将 DateFrom.Value 放入需要此特定格式的字符串中。

我已经尝试了我发现的所有方法,但由于我在 VB 上还很新手,所以我尝试过的任何东西似乎都不起作用。

这是我在命令按钮开头的代码:

Private Sub CommandButton1_Click()

Dim i As Integer
Dim TerminalIDRange As Range
Dim ii As Long
Set FormlerSheet = Worksheets("Formler")
Set DataSheet = Worksheets("Data")
Set TerminalIDRange = DataSheet.Range("M2:M2000")

DateFrom.Format = DateTimePickerFormat.Custom
DateTo.Format = DateTimePickerFormat.Custom
DateFrom.CustomFormat = "yyyy-MM-dd"
DateTo.CustomFormat = "yyyy-MM-dd"

MsgBox DateFrom.Value

出于某种原因,DateFrom.Value 仍然显示日期为 dd.mm.yyyy。

还有;要在加载用户窗体后将 DateFrom 和 DateTo 的代码设置为空白,我应该将此代码放在哪里??

希望有人能帮助我...

当我理解正确时,您只需要 "yyyy-MM-dd" 格式的日期。 然后你也可以只读取 DateFrom.Value 并用 Format$ 转换它,就像这样:

Dim s as string
s = Format$(DateFrom.Value, "yyyy-MM-dd")
MsgBox s