我正在尝试修改VBA宏以启用Excel范围(作为图片,用于格式化目的)粘贴到Word书签。
Sub test2()
Dim objWord As Object
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("PREMIUMS")
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open "C:\TEST\BTM Macro Template.docx"
With objWord.ActiveDocument
.Bookmarks("PLAN_1_SHEET").Range.Text = ws.Range("A34").Value
.Bookmarks("PLAN_2_SHEET").Range.Text = ws.Range("BTM_PREM").Value
End With
Set objWord = Nothing
End Sub
宏粘贴单个单元格文本引用(" A34"),但对范围使用相同的代码" BTM_PREM")会返回类型不匹配错误。 我知道这是因为范围不是一个字符串,但似乎无法确定如何修改此行以启用" BTM_PREM"作为图片,在" PLAN_2_SHEET"书签。
.Bookmarks("PLAN_2_SHEET").Range.Text = ws.Range("BTM_PREM").Value
答案 0 :(得分:1)
您可以在Excel Copy()
对象上使用Range
方法,然后使用Paste()
或PasteSpecial()
或PasteExcelTable()
Word Range
对象方法,例如如下:
ws.Range("BTM_PREM").Copy
.Bookmarks("PLAN_2_SHEET").Range.Paste
或
ws.Range("BTM_PREM").Copy
.Bookmarks("PLAN_2_SHEET").Range.PasteSpecial Link:=True
或
ws.Range("BTM_PREM").Copy
.Bookmarks("PLAN_2_SHEET").Range.PasteExcelTable LinkedToExcel:=True, WordFormatting:=False, RTF:=True
答案 1 :(得分:1)
这是一段适合我的代码:
ActiveWorkbook.Sheets("Lease 1").Range("B16:AF25").CopyPicture Appearance:=xlScreen, Format:=xlPicture
wdoc.Bookmarks("Bkmrk1").Range.Paste
Application.CutCopyMode = False
这不是一个完整的宏,只是它的一部分,所以你必须调整一下,但我想你明白了。