链接到 WORD 模板中的日期选取器的日期书签始终填充为“1899 年 12 月 30 日”

Date Bookmark linked to Date Picker in WORD Template always populates as "30 Dec 1899"

提问人:Grandpa_Clem 提问时间:10/28/2023 最后编辑:Timothy RylattGrandpa_Clem 更新时间:10/28/2023 访问量:35

问:

我使用 VBA 开发了几个相关的 WORD 启用宏的模板。它们都使用通用的编程和书签(即书签名称和VBA代码来填充书签。随着我在学习如何设计/编程模板方面取得的进展,我添加了更多高级功能。一项新功能是使用日期选取器,而不是用户键入日期的文本框。我已经成功地将日期选择器合并到所有模板中......除了一个......我开发的第一个。与该日期选取器关联的日期书签始终填充为“1899 年 12 月 30 日”,而不是在日期选取器上选择的日期。禁用日期选取器时,会发生此事件。

我已经询问了 ChatGPT 关于我能想到的相关问题的各种可能变体。我已经实施了所有各种编码建议,但没有成功。我已确保在用户窗体上正确初始化并启用日期选取器。我知道 Microsoft Office 使用 1899 年 12 月 30 日作为其“基准日期”。这让我认为问题出在文档的格式或属性上,而不是VBA编码上。我使用相同的工作站和 WORD 应用程序来开发所有模板,因此我认为它不是计算机或应用程序本身的设置/属性。

我想知道是否有人对如何查看 WORD 文档的真正详细设置、属性和/或格式有建议,我将不胜感激。

这是我成功用于填充其他正常工作的模板中的日期书签的VBA代码。(书签有几个变体,因为它们出现在模板中的不同位置,并在这些位置使用不同的格式):

Dim Selected_Date As Range
Set Selected_Date = ActiveDocument.Bookmarks("Selected_Date").Range
Selected_Date.Text = Format(Me.Date_Picker.Value, "dd Mmm yy")

Dim Selected_Date_1 As Range
Set Selected_Date_1 = ActiveDocument.Bookmarks("Selected_Date_1").Range
Selected_Date_1.Text = Format(Me.Date_Picker.Value, "Mmm yy")

Dim Selected_Date_2 As Range
Set Selected_Date_2 = ActiveDocument.Bookmarks("Selected_Date_2").Range
Selected_Date_2.Text = Format(Me.Date_Picker.Value, "Mmm yy")

以下是一些未解决问题的编码建议示例

“建议 1”

Private Sub UserForm_Click()
DTPicker1.Format = dtpCustom
DTPicker1.CustomFormat = "dd MM yyyy"
DTPicker1.Value = Date
End Sub

“建议2”

Private Sub CommandButtonOk_Click()
Application.ScreenUpdating = False
With ActiveDocument
Call UpdateBookmark("CDOB", Format(TextBoxCDOB.Value, "d MMM yyyy"))
End With
Application.ScreenUpdating = True
Unload Me
End Sub
VBA 日期 ms-word 书签

评论

0赞 Timothy Rylatt 10/28/2023
我们应该如何帮助您调试未将其包含在问题中不起作用的代码?您没有说您使用的是哪个版本的 Word,但您是否使用日期选取器内容控件?如果使用“插入”|”快速零件 |文档属性:您可以让它出现在多个位置,但只需要在一个位置设置它。
0赞 jonsson 10/28/2023
书签名称的名称中是否可以使用零而不是“O”(反之亦然)?
0赞 Grandpa_Clem 10/29/2023
该问题与VBA代码无关...我询问的是“在引擎盖下查看”,以查找文档中可能导致问题的任何隐藏或不明显的格式和/或属性。该代码在其他几个模板中完美运行。
0赞 Timothy Rylatt 10/29/2023
发布其他模板中使用的代码与您的问题完全无关。没有会导致问题的格式选项或属性。唯一相关的因素是您在该文档中使用的代码以及该文档中书签的名称。
0赞 Grandpa_Clem 10/30/2023
我发布的代码在我的问题模板中使用了!我感觉到一些完全没有根据的敌意,Timothy Rylatt。我是新的VBA用户,根本没有接受过任何正式的编码培训。我所有的经验都是 OJT,所以如果我因为提出措辞不完美的问题而冒犯了您微妙的编码员敏感性,我深表歉意。我咨询了我公司一位经验丰富的 IT 专业人士,他也感到困惑。我向这个论坛寻求帮助,我从你那里得到的只是$h!t。请不要在我可能发表的这篇文章或其他帖子上进一步“帮助”我。

答: 暂无答案