Excel 需要向word文档添加多个表
我需要将excel宏中的多个表添加到word文档中 我通过循环尝试了对象Excel 需要向word文档添加多个表,excel,vba,ms-word,Excel,Vba,Ms Word,我需要将excel宏中的多个表添加到word文档中 我通过循环尝试了对象Set objTable=objDoc.Tables(1),但它正在用新数据覆盖现有表的内容 Sub btnrun_Click() Dim objWord As Object Dim objDoc As Object Dim ObjSelection Dim ObjRange Dim objTable Dim intRows, intColumns, defVal, x
Set objTable=objDoc.Tables(1)
,但它正在用新数据覆盖现有表的内容
Sub btnrun_Click()
Dim objWord As Object
Dim objDoc As Object
Dim ObjSelection
Dim ObjRange
Dim objTable
Dim intRows, intColumns, defVal, x
Dim y As Integer
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set ObjSelection = objWord.Selection
intRows = 8
intColumns = 2
defVal = 7
x = 8
y = 1
Set ObjRange = ObjSelection.Range
objDoc.Tables.Add ObjRange, intRows, intColumns
While (Not IsEmpty(Worksheets("Sheet1").Range("A" & x)))
Set objTable = objDoc.Tables(1)
objTable.Borders.Enable = True
objTable.Columns(1).Width = 150
objTable.Columns(2).Width = 300
For i = 1 To 1
For j = 1 To 1
objTable.cell(j, i).Range.Text = Worksheets("Sheet1").Range("A" & defVal)
objTable.cell(j, 2).Range.Text = Worksheets("Sheet1").Range("A" & x)
objTable.cell(j + 1, i).Range.Text = Worksheets("Sheet1").Range("B" &
defVal)
objTable.cell(j + 1, 2).Range.Text = Worksheets("Sheet1").Range("B" & x)
objTable.cell(j + 5, i).Range.Text = "Fircosoft UI"
objTable.cell(j + 6, i).Range.Text = "Cognos UI"
objTable.cell(j + 7, i).Range.Text = "Database Result"
Next
Next
x = x + 1
Wend
objDoc.SaveAs ("D:\PassLogs")
objWord.Quit
Set objWord = Nothing
End Sub
目前,这些值正在被覆盖,但我希望它们每次都添加到一个新表中。使用
Set objTable=objDoc.Tables(1)
您不会创建新表。您正在使用现有的。要添加表格,您必须使用.tables.add
。在Google上研究如何在word vba中添加一个表,然后在Excel中使用该代码并进行相关修改。下面是我用与示例中提供的相同方法所做的一项工作。但值得注意的是,值在同一个表中被重写。您所做的是将表添加到循环之外。在循环中添加表,然后使用它。也可以使用Set objTable=objDoc.Tables.Add而不是objRange.intNoOfRows.intNoOfColumns
Add(objRange,intRows,intColumns)
然后使用objTable
:)代码正在工作,创建了两个表,但使用第一个表创建了第二个表。有没有特定的函数可以在新行中断行并创建新表?