提问人:Grandpa_Clem 提问时间:10/28/2023 最后编辑:Timothy RylattGrandpa_Clem 更新时间:10/28/2023 访问量:35
链接到 WORD 模板中的日期选取器的日期书签始终填充为“1899 年 12 月 30 日”
Date Bookmark linked to Date Picker in WORD Template always populates as "30 Dec 1899"
问:
我使用 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
答: 暂无答案
评论