我可以将一个excel文件复制到一个显示为图标的word文档中。但是当我从一个文件夹中选择多个文件时,发生的情况是每个文件都被复制到新的word文档中。换句话说,我无法一次将多个文件嵌入到单个word文档中。
另外,在我的代码中,我必须在word文档中从头开始创建一个书签。我想通过代码在word文档中动态创建书签。
谁能教我如何通过代码动态创建书签,以及如何将多个文件同时嵌入到单个word文档中。
这是我的工作代码,一次只嵌入一个文件。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ofd As New OpenFileDialog
ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
ofd.Filter = "Excel Files (*.xls;xlsx)|*.xls;xlsx"
ofd.FilterIndex = 2
ofd.RestoreDirectory = True
ofd.Multiselect = True
Dim Files As String = ofd.InitialDirectory
If ofd.ShowDialog() = DialogResult.OK Then
For Each Files In ofd.FileNames
Dim filename As String = ofd.FileName
Dim oWord As Word.Application = New Word.Application()
Dim oWordDoc As Word.Document = oWord.Documents.Open("C:\testing.doc", False)
Dim oMissing As Object = System.Reflection.Missing.Value
oWord.Visible = True
'ICON LABEL CAN BE THE NAME OF THE FILE,
'ITS THE NAME DISPLAYED BESIDES THE EMBEDDED DOCUMENT
Dim oIconLabel As Object = filename
'THE BOOKMARK WHERE THE FILE NEEDS TO BE EMBEDDED
Dim oBookMark As Object = "ssss"
'//THE LOCATION OF THE FILE
Dim oFileDesignInfo As Object = filename
'//OTHER VARIABLES
Dim oClassType As Object = "Word.Document.8"
Dim oTrue As Object = True
Dim oFalse As Object = False
'Dim oMissing As Object = System.Reflection.Missing.Value
Dim oIconFileName As Object = oMissing
'METHOD TO EMBED THE DOCUMENT
oWordDoc.Bookmarks.Item(oBookMark).Range.InlineShapes.AddOLEObject(oClassType, oFileDesignInfo, _
oFalse, oTrue, oIconFileName, oMissing, oIconLabel, oMissing)
Next
End If
End Sub发布于 2014-02-21 01:33:58
打开新的word实例并加载文档的代码在循环中-将其移出循环,以便只运行一次。
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim ofd As New OpenFileDialog
ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
ofd.Filter = "Excel Files (*.xls;xlsx)|*.xls;xlsx"
ofd.FilterIndex = 2
ofd.RestoreDirectory = True
ofd.Multiselect = True
Dim Files As String = ofd.InitialDirectory
If ofd.ShowDialog() = DialogResult.OK Then
Dim oWord As Word.Application = New Word.Application()
Dim oWordDoc As Word.Document = oWord.Documents.Open("C:\testing.doc", False)
Dim oMissing As Object = System.Reflection.Missing.Value
oWord.Visible = True
For Each Files In ofd.FileNames
'*************
'rest of code....
'*************
Next
End If
End Sub发布于 2014-02-25 21:06:57
终于做到了,successfully...Here是它的工作代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ofd As New OpenFileDialog
ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
ofd.Filter = "Excel Files (*.xls;xlsx)|*.xls;xlsx"
ofd.FilterIndex = 2
ofd.RestoreDirectory = True
ofd.Multiselect = True
Dim Files As String
If ofd.ShowDialog() = DialogResult.OK Then
Dim oWord As Word.Application = New Word.Application()
Dim oWordDoc As Word.Document = oWord.Documents.Open("C:\testing.doc", True)
Dim oBookmark As Object = oWordDoc.Bookmarks.Add("Bookmark")
Dim oMissing As Object = System.Reflection.Missing.Value
oWord.Visible = True
For Each Files In ofd.FileNames
'ICON LABEL CAN BE THE NAME OF THE FILE,
'ITS THE NAME DISPLAYED BESIDES THE EMBEDDED DOCUMENT
Dim oIconLabel As Object = Path.GetFileName(Files)
'//INCASE WE NEED THE EMBEDDED DOCUMENT TO BE DISPLAYED AS A SPECIFIC ICON,
'//WE NEED TO SPECIFY THE LOCATION OF THE ICON FILE
'//ELSE SET IT TO oMissing VALUE
'Dim oIconFileName As Object = "C:\\Document and Settings\\IconFile.ico"
'//THE LOCATION OF THE FILE
Dim oFileDesignInfo As Object = Files
'//OTHER VARIABLES
Dim oClassType As Object = "Word.Document.8"
Dim oTrue As Object = True
Dim oFalse As Object = False
'Dim oMissing As Object = System.Reflection.Missing.Value
Dim oIconFileName As Object = oMissing
'//METHOD TO EMBED THE DOCUMENT
oWordDoc.Bookmarks.Item(oBookMark).Range.InlineShapes.AddOLEObject(oClassType, oFileDesignInfo, _
oFalse, oTrue, oIconFileName, oMissing, oIconLabel, oMissing)
Next
End If
Me.Close()
End Subhttps://stackoverflow.com/questions/21902315
复制相似问题