Word表导入Excel类型不匹配



我有下面的宏添加一个列到Word表和粘贴值在每个单元格到最后一行。它在Word中完美运行,但当在Excel宏中运行时,它正确地添加了新列,但随后给出了范围(tblA, tblB, tblC)的类型不匹配错误。有人能帮忙找出错误吗?很多谢谢!

Sub AddTeamColumn()
Dim WordApp As Object, WordDoc As Object
Dim arrFileList As Variant, Filename As Variant
Dim tblA As Range, tblB As Range, tblC As Range
'On Error Resume Next
arrFileList = Application.GetOpenFilename("Word files (*.doc; *.docx),*.doc;*.docx", 2, _
"Select files", , True)
If Not IsArray(arrFileList) Then Exit Sub
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
For Each Filename In arrFileList
Set WordDoc = WordApp.Documents.Open(Filename, ReadOnly:=False)

WordDoc.Tables(3).Columns.Add
WordDoc.Tables(4).Columns.Add
WordDoc.Tables(5).Columns.Add

Set tblA = WordDoc.Range(Start:=WordDoc.Tables(3).Cell(2, 8).Range.Start, _
End:=WordDoc.Tables(3).Rows.Last.Range.End)
Set tblB = WordDoc.Range(Start:=WordDoc.Tables(4).Cell(2, 9).Range.Start, _
End:=WordDoc.Tables(4).Rows.Last.Range.End)
Set tblC = WordDoc.Range(Start:=WordDoc.Tables(5).Cell(2, 5).Range.Start, _
End:=WordDoc.Tables(5).Rows.Last.Range.End)

WordDoc.Tables(1).Cell(1, 1).Select
Selection.Copy
'tblA.PasteSpecial DataType:=wdPasteText 'Word
tblA.PasteSpecial xlPasteValues 'Excel

WordDoc.Tables(1).Cell(1, 1).Select
Selection.Copy
'tblB.PasteSpecial DataType:=wdPasteText 'Word
tblA.PasteSpecial xlPasteValues 'Excel

WordDoc.Tables(1).Cell(1, 1).Select
Selection.Copy
'tblC.PasteSpecial DataType:=wdPasteText 'Word
tblC.PasteSpecial xlPasteValues 'Excel
WordDoc.Save
Next Filename
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
End Sub

当从Excel中运行时,您必须将表格范围明确定义为Word。Range——否则他们会期望excel -Range(因此类型不匹配)——或者如果你想要保持后期绑定,使用object。

如果您可以使用早期绑定,那么您必须将Microsoft Word作为参考添加到您的VBA项目中。

'early binding
Dim tblA As Word.Range, tblB As Word.Range, tblC As Word.Range
'late binding
Dim tblA As object, tblB As object, tblC As object

与选择相同:您必须使用wordapp.Selection,否则引用Excel选择。

最新更新