请大家帮忙看看我的代码,为什么生成的WORD文档中,利用自动图文集生成的表格和模板的不一样的?高度不一样,还有段落、字体等都不一样。我修改了你的代码,把插入“下一页”换成了“回车”,这样做的目的是可以利用分栏在一页里打多个标签。
gGMS98V0.rar
(36.75 KB, 下载次数: 8)
Sub WritetoWord() Dim wdApp As New Word.Application, wdDoc As Word.Document, wdRange As Word.Range Dim wdTable As Word.Table, RowId As Integer Dim xlRange As Range, i As Range, EndCell As Range With Sheets("2001年后科技档案(含本港北部湾123及飞跃168历年档案)") Set EndCell = .[H65536].End(xlUp) '找到H列最后一个有数据单元格 Set xlRange = .Range(.Range("H2"), EndCell) '定义H列数据范围 End With Set wdDoc = wdApp.Documents.Open(Filename:=ThisWorkbook.Path & "\保管位置.dot") '打开模板 With wdDoc Set wdTable = .Tables(1) 'WORD第一个表格 For Each i In xlRange '遍历H列数据范围 RowId = RowId + 1 '下移一个单元格 If i.Offset(1, 0).Value = i.Value Then '如果下一个单元格的值与当前单元格值相同 With wdTable .Cell(1, 1).Range.Text = "保管位置:" & i.Value '把当前单元格的数值填入表格的第一个单元格 ' .Cell(RowId + 1, 1).Range.Text = i.Offset(, -2).Value '取相应的数值填入WORD表格的单元格 .Cell(RowId + 3, 1).Range.Text = i.Offset(, 3).Value '取相应的数值填入WORD表格的单元格 .Cell(RowId + 3, 2).Range.Text = i.Offset(, 2).Value '取相应的数值填入WORD表格的单元格 End With Else With wdTable .Cell(1, 1).Range.Text = "保管位置:" & i.Value '.Cell(RowId + 2, 1).Range.Text = i.Offset(, -2).Value .Cell(RowId + 3, 1).Range.Text = i.Offset(, 3).Value .Cell(RowId + 3, 2).Range.Text = i.Offset(, 2).Value End With If i.Address <> EndCell.Address Then '如果没有遍历到最后一个数据 .Content.InsertAfter Chr(13) '插入回车符 Set wdRange = .Range(.Content.End - 1, .Content.End - 1)'此句不明白 .AttachedTemplate.AutoTextEntries("我的表格").Insert wdRange '插入自动图文集生成表格 Set wdTable = .Tables(.Tables.Count) '定义wdTable为当前操作的表格 RowId = 0 End If End If Next End With wdApp.Visible = True Set wdApp = Nothing End Sub
[此贴子已经被作者于2006-9-25 18:53:05编辑过] |