1

次のコードは、単一の値を Word のブックマークにコピーします。「A6:G20」のような値の範囲をコピーする必要があります。

Sub test()
Dim objWord As Object
Dim ws As Worksheet

Set ws = Workbooks("Portfolio1").Sheets("Print")
Set objWord = CreateObject("Word.Application")

objWord.Visible = True
objWord.Documents.Open "D:Q.docx" ' change as required

With objWord.ActiveDocument
 .Bookmarks("monthtable").Range.Text = ws.Range("C6").Value ' here I need range of values to be selected instead of a single cell
End With
Set objWord = Nothing
End Sub 
4

2 に答える 2

1

適切な場合は、範囲をコピーして貼り付けることができます。

Range("A6:G20").Copy
.Bookmarks("monthtable").Range.PasteExcelTable False, False, False

Excel テーブルとして貼り付けたくない場合は、他にも多くの貼り付け方法があります。Word の VB エディターを使用してこれらを検出するか、Word マクロ レコーダーを使用します。

于 2013-07-25T18:59:21.797 に答える
0

もちろん、これは重要な部分です。

With objWord.ActiveDocument    
.Bookmarks("monthtable").Range.Text = ws.Range("C6").Value ' here i need range of values to be selected instead of a single cell
End With

ここでは、ws.Range("...") を循環し、その範囲内の各セルに対して、その値を .Bookmarks.Range.Text 値に連結する必要があります (等しく設定すると上書きされます)。最初にこれを文字列変数に連結してから、その文字列変数の値にブックマークを設定することをお勧めします。これにより、潜在的な相互運用の問題を回避できるからです。

于 2013-07-25T18:54:26.077 に答える