2015-09-25 25 views
0

我正在寫一個將excel文件中的圖形粘貼到單詞中的宏。在excel文檔中尋找特定行VBA

Worksheets(worksheetname).Activate 
ActiveSheet.ChartObjects(chartname).Activate 
Selection.Cut 
mydoc.Activate 

與工作表名稱等聲明和正確定義。

我不知道如何從excel VBA中引用word文檔中的一行。我已經參考了文檔中的一行,我可以將它粘貼進去。

編輯:爲了澄清,我可以將其粘貼到一個段落中。我正在尋找比段落開頭更好的位置:要麼在特定的行中,要麼指定段落的結尾。 /編輯

我唯一的想法是:

Rng = mydoc.Range(doc.Paragraphs(1).Start, mydoc.Paragraphs(1).End - 1).paste 

,但我認爲這是在文字風格的VBA,這似乎並沒有工作。

乾杯!

+0

你想在特定段落後粘貼嗎?在任何文檔?或插入到預定義模板中的特定點? doc.Paragraphs(1).Range.Paste()不起作用? – Steve

+0

我正試圖在特定段落的末尾粘貼。我將編輯我原來的帖子來反映這一點。 doc.Paragraphs(1).Range.Paste()粘貼在段落的開頭。我想粘貼在最後/在給定的行中。 –

+0

在使用單詞時,行是一個模糊和誤導性的概念。這是因爲任何插入,字體更改,頁面設置,格式等等都會改變行數。我建議你完全放棄「特定行」的想法。按照段落推理是正確的,就像在帖子中一樣,但不是標題。 –

回答

1

這是行不通的?

Dim r As Range 
Set r = d.Paragraphs(i).Range 
r.Start = r.End 
r.Paste 
0

我發現我自己的解決方案,我認爲這工作得很好。

它實際上查找文檔中的第一個單詞,然後減少所需的行數。

Sub LineSelection() 

    Dim WordApp As Object 

    Set WordApp = GetObject(, "Word.Application") 
    WordApp.Visible = True 

    ActiveDocument.Content.Select 

    With Word.Selection.Find 
     .ClearFormatting 
     .Text = "[Type very first word of the Word Document here]" 
    End With 

    If Word.Selection.Find.Execute Then 
     Word.Selection.Select 
     Word.Selection.Goto What:=wdGoToLine, Which:=wdGoToNext, Count:=3 
     ''instead of [3] type the line you want to go to  >>>  ^^^ 
    End If 

End Sub 

希望你找到這個解決方案helpfull。

對不起,我可能會遲到2.5年;)