将日期从Excel粘贴到Word以不同的格式复制

时间:2015-01-08 16:33:17

标签: excel vba excel-vba ms-word word-vba

我有一个从Excel复制某些数据并将它们粘贴到Word中的宏,但是我正在寻找一种在粘贴之前修改日期格式的方法。

目前复制Excel中显示的日期,即16/01/2015

Sub NoFormatPaste()
    wdFind.Replacement.Text = ""
    wdFind.Forward = True
    wdFind.Wrap = wdFindContinue
    wdFind.Execute
    appWd.Selection.PasteSpecial DataType:=wdPasteText
    CutCopyMode = False
End Sub

Cells(Application.ActiveCell.Row, 14).Select
Selection.Copy
wdFind.Text = "DATE"
Call NoFormatPaste

但是我想以不同的格式粘贴它。像这样的东西,但它不起作用。即2015年1月16日星期五

Sub NoFormatDatePaste()
    wdFind.Replacement.Text = ""
    wdFind.Forward = True
    wdFind.Wrap = wdFindContinue
    wdFind.Execute
    appWd.Selection = Format(date_example, "dddd d mmmm yyyy")
    CutCopyMode = False
End Sub

wdFind.Text = "DATE"
Call NoFormatDatePaste

如果需要,我可以粘贴整个代码,这些只是不起作用的位。

您似乎无法告诉Word要打印的值,并且值实际上需要复制和粘贴。

1 个答案:

答案 0 :(得分:1)

将日期值存储在字符串中并将其传递给其他过程:

Dim dateValue as String

dateValue = Cells(Application.ActiveCell.Row, 14).Value

wdFind.Text = "DATE"

Call NoFormatPaste(dateValue)

在其他程序中,请勿使用.Paste方法,而只需插入字符串即可。

Sub NoFormatDatePaste(dateValue as String)

wdFind.Replacement.Text = ""
wdFind.Forward = True
wdFind.Wrap = wdFindContinue
wdFind.Execute
appWd.Selection.InsertAfter Format(dateValue, "dddd d mmmm yyyy")


End Sub