Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA日期格式化赢得';行不通_Vba_Ms Word - Fatal编程技术网

VBA日期格式化赢得';行不通

VBA日期格式化赢得';行不通,vba,ms-word,Vba,Ms Word,我会马上开始的,我的宏中的日期似乎无法以我想要的格式打印(“2017年6月30日”为例) 以下是我到目前为止的进展: Sub TopDate() Selection.Delete Unit:=wdCharacter, Count:=1 Dim mBefore As Date mBefore = Format(DateAdd("m", 0, Date - 1), "mmmm d yyyy") Selection.InsertBefore mBefore Selection.M

我会马上开始的,我的宏中的日期似乎无法以我想要的格式打印(“2017年6月30日”为例)

以下是我到目前为止的进展:

Sub TopDate()

  Selection.Delete Unit:=wdCharacter, Count:=1
  Dim mBefore As Date
  mBefore = Format(DateAdd("m", 0, Date - 1), "mmmm d yyyy")
  Selection.InsertBefore mBefore
  Selection.MoveRight Unit:=wdCharacter, Count:=1

End Sub
我将旧文档重新用作模板,理想情况下,我只需突出显示旧日期,点击一个快捷方式并完成它

我已经被困在这个问题上大约半个小时了,很尴尬,非常感谢您的帮助

谢谢

改变这一点:

mBefore = Format(DateAdd("m", 0, Date - 1), "mmmm d yyyy")

获取格式,如2017年6月30日
。但我想知道像这样简单的事情会给你带来问题,所以你一定是问得不对。

所以你用的是VBA这个词(这应该是问题的一部分)。
因此,插入格式化日期的代码应如下所示:

Selection.Delete Unit:=wdCharacter, Count:=1
Selection.InsertDateTime DateTimeFormat:="dd MMMM yyyy"
Selection.MoveRight Unit:=wdCharacter, Count:=1

如果您喜欢您给出的示例(“2017年6月30日”)中的格式,则将以下行更改为:mBefore=format(DateAdd(“m”,0,Date-1),“mmmm d yyyy”)改为:mBefore=format(DateAdd(“m”,0,Date-1),“dd mmmm yyyy”)无效:(您得到了什么?错误是什么?它只是打印2017年6月30日,而不是2017年6月30日。重新启动没有帮助,另一台机器没有帮助。感觉我疯了哈哈如果您想在excel工作表上格式化输出,那么您应该使用以下选项:Selection.NumberFormat=“dd mmmm yyyy”
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.InsertDateTime DateTimeFormat:="dd MMMM yyyy"
Selection.MoveRight Unit:=wdCharacter, Count:=1