将Excel中的多个表插入Word VBA



我的代码有问题,我试图在Excel中复制3个不同的表/单元格位置,然后在Word中粘贴这些值/表。我想把它们直接粘贴在一起。

我一直收到

5941的运行时错误。"应用程序定义或对象定义错误">

我试着查找这可能意味着什么,但我运气不好。我在这个网站上找到了这个参考:运行时错误StackOverFlow,但没能解决我的问题。

我的代码:

Sub TalkToWord()
Dim wdApp As New Word.Application, wdDoc As Word.Document, wdRng As Word.Range
Dim myCat As Integer: myCat = InputBox("Enter your Category: ")
Dim myConfig As Long: myConfig = InputBox("Enter your Config #: ")
Dim myGradeName As String: myGradeName = InputBox("Enter your Grade Name: ")
Dim myDept As Integer: myDept = InputBox("Enter your Dept: ")
Dim myClass As Integer: myClass = InputBox("Enter your Class/Subclass: ")
Dim mySeason As String: mySeason = InputBox("Enter your Season Code: ")
myTimeFrame = Application.InputBox("Enter your Time Frame: ", FormatDateTime(Date, vbShortDate))
With wdApp
.Visible = True
Set wdDoc = .Documents.Add
With wdDoc.Range
.PageSetup.TopMargin = InchesToPoints(0.3)
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Bold = True
.Font.Underline = True
.InsertAfter "FY 19 CAT " & myCat
.InsertParagraphAfter
Set wdRng = .Characters.Last
With wdRng
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.ParagraphFormat.LeftIndent = InchesToPoints(-0.7)
.ParagraphFormat.SpaceAfter = 5
.Font.Underline = False
.Font.Size = 12
.InsertParagraphAfter
.InsertAfter ("Grade Number:")
.InsertParagraphAfter
.InsertAfter ("Config #:")
.InsertParagraphAfter
.InsertAfter ("Grade Name:" & myGradeName)
.InsertParagraphAfter
.InsertAfter (Chr(9) & "-" & "Dept:" & myDept)
.InsertParagraphAfter
.InsertAfter (Chr(9) & "-" & "Class/Subclass:" & myClass)
.InsertParagraphAfter
.InsertAfter (Chr(9) & "-" & "Season Code:" & mySeason)
.InsertParagraphAfter
.InsertAfter (Chr(9) & "-" & "TimeFrame:" & myTimeFrame)
.InsertParagraphAfter
.InsertAfter (Chr(9) & "-" & "Grade Type:" & myGradeType)
.InsertParagraphAfter
.InsertAfter (Chr(9) & "-" & "Index Breakpoint Bands by Volume Grade:")
.InsertParagraphAfter
.InsertParagraphAfter
.Collapse wdCollapseEnd
.InsertParagraphAfter
.InsertBreak Type:=wdLineBreak
.Collapse wdCollapseEnd
.PageSetup.TopMargin = InchesToPoints(0.1)
--- Worksheets("Sheet2").Range("A1", "B2").Copy
.Paste
.Tables(1).Rows.Alignment = wdAlignRowCenter
.InsertBreak Type:=wdLineBreak
.Collapse wdCollapseEnd
.PageSetup.TopMargin = InchesToPoints(0.1)
Worksheets("Sheet2").Range("K1", "Q2").Copy
.Paste
.Tables(2).Rows.Alignment = wdAlignRowCenter
.InsertBreak Type:=wdLineBreak
.Collapse wdCollapseEnd
.PageSetup.TopMargin = InchesToPoints(0.1)
Worksheets("Sheet2").Range("K4", "Q6").Copy
.Paste
.Tables(3).Rows.Alignment = wdAlignRowCenter
End With
End With
End With
End Sub

错误发生在带有3个短划线的行上。

我是VBA的新手,所以请放心!

编辑:它将创建Word文档

如果此代码是从您正在复制的工作簿中运行的,请尝试从更改问题行

Worksheets("Sheet2").Range("A1", "B2").Copy

ThisWorkbook.Worksheets("Sheet2").Range("A1", "B2").Copy

最新更新