我想在Word文檔的seartain BOOkmark中插入Excel文件而不打開Excel,當Word文檔打開時自動插入。如何複製和粘貼excel word到單詞vba
1.我打算首先打開一個打開的文件對話框,彈出一個窗口。而我的代碼如下:(但只在Excel VBA使用Word不起作用VBA我應該怎麼更改代碼,這樣我可以在Word中做到這一點???)
Sub openfile()
Dim intChoice As Integer
Dim strPath As String
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
intChoice = Application.FileDialog(msoFileDialogOpen).Show
If intChoice <> 0 Then
strPath = Application.FileDialog(_
msoFileDialogOpen).SelectedItems(1)
End If
End Sub
然後我做了一個複製和粘貼底部的代碼如下:(它也只工作當升在Excel中的代碼是如何改變字VBA?)
Sub CopyWorksheetsToWord() Dim wdApp As Word.Application, wdDoc As Word.Document, ws As Worksheet Application.ScreenUpdating = False Application.StatusBar = "Creating new document..." Set wdApp = New Word.Application Set wdDoc = wdApp.Documents.Add For Each ws In ActiveWorkbook.Worksheets ws.UsedRange.Copy wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.Paste Application.CutCopyMode = False wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter If Not ws.Name = Worksheets(Worksheets.Count).Name Then With wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range .InsertParagraphBefore .Collapse Direction:=wdCollapseEnd .InsertBreak Type:=wdPageBreak End With End If Next ws Set ws = Nothing Application.StatusBar = "Cleaning up..." With wdApp.ActiveWindow If .View.SplitSpecial = wdPaneNone Then .ActivePane.View.Type = wdNormalView Else .View.Type = wdNormalView End If End With Set wdDoc = Nothing wdApp.Visible = True Set wdApp = Nothing Application.StatusBar = False End Sub
您的代碼缺乏基本邏輯。首先,VBA只能在打開MS Office文檔的情況下運行。哪一個?在運行代碼之前,您無法打開對話框來選擇文檔。接下來,如果你想從Word打開Excel,你必須先運行Word,然後創建一個Excel應用程序。最後,如果你想從對話框中選擇Excel工作簿,你可以從Word中完成。在您將其提交給其他人審查之前,您應該將這些順序納入您的代碼。至少,你的意圖將會/應該清楚。 – Variatus
@ Variatus - 我想你可能會過度複雜化。 OP聲明「Word打開時」。這告訴我他們想要在打開的事件'Document_Open()'中彈出一個文件選擇框,用不可見的Excel抓取Excel數據並將其插入到打開的Word文檔中。他們甚至給他們的代碼位,並表示它在Excel中工作,但不是Word。 –
@Variatus我認爲Leila在這裏需要的僅僅是一段代碼片段,它可以完成同樣的事情,但是可以在word文件中工作:它可以打開給定的excel文件(打開但用戶不可見),並從excel文件複製內容到當前的單詞文件。上面的代碼已經做到了,但它運行在excel文件中,並從excel文件中讀取內容,將其複製到給定的文件中。 – Manuela