我需要将其转换为:“ 2018年7月19日,星期四”到“ 7/19/2018”。然后将其转换为字符串,以便我可以将其替换为下划线,以便保存文件。我尝试了cdate,但是没有用。我试过的-> x = cdate(x)。也有人可以告诉我如何执行保存提示
Sub Macro4()
Dim x As String
Dim z As String
Dim y As String
'x has the date
x = ActiveDocument.ContentControls(1).Range.Text
'y has the name
y = ActiveDocument.ContentControls(2).Range.Text
' error with code trying to convert Thursday, July 19, 2018 to 7/19/2018
x = cDate(x,"mm/dd/yyyy")
'replace backslash with an underscore
newstring = Replace(z, "/", "_")
ActiveDocument.SaveAs2 FileName:=z, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=15
End Sub
答案 0 :(得分:0)
我认为CDate不是您要寻找的功能。我相信DateValue会更好。从语言参考中:
必需的date参数通常是一个字符串表达式 表示从100年1月1日到9999年12月31日的日期。 但是,日期也可以是可以表示日期的任何表达式, 时间,或者日期和时间都在该范围内。
在任何情况下,日期中的星期几太多-需要删除。例如:
x = ActiveDocument.ContentControls(1).Range.Text
x = Mid(x, InStr(x, " ") + 1)
'y has the name
y = ActiveDocument.Contentcontrols(2).Range.Text
z = DateValue(x)