我想在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