我有一个 Excel 表格,我正在尝试创建代码以将该数据导出到新的 MSWord 文档,每页两列,横向。 诚然,我是一个菜鸟,所以请耐心等待。 我的代码如下。 我可以毫无问题地在文档中创建两列,但创建的文档未设置为横向。
请忽略我尝试格式化文档下方的所有代码,因为它们仍处于 WIP 状态。感谢您的指导(温柔)。
Sub generate_word_doc()
Dim objWord
Dim objDoc
Dim objSelection
Dim i, j As Integer
Dim ws As Worksheet
Dim row_count, col_count As Integer
Set ws = ThisWorkbook.Sheets("Roster")
ws.Activate
row_count = WorksheetFunction.CountA(Range("C1", Range("C1").End(xlDown)))
col_count = WorksheetFunction.CountA(Range("C1", Range("C1").End(xlToRight)))
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
Set objSelection = objWord.Selection
objWord.Visible = True
objWord.Activate
With objDoc
.PageSetup.Orientation = wdOrientLandscape
.PageSetup.TextColumns.SetCount NumColumns:=2
.PageSetup.LeftMargin = 18
.PageSetup.MirrorMargins = True
End With
Set RosterTable = objDoc.Tables.Add(objSelection.Range, row_count, col_count)
With RosterTable
With .Borders
.enable = True
.outsidecolor = RGB(0, 0, 0)
.insidecolor = RGB(0, 0, 0)
End With
.Rows(1).shading.backgroundpatterncolor = RGB(221, 221, 221)
For i = 0 To row_count
For j = 1 To col_count
.cell(i, j).Range.InsertAfter ws.Cells(i + 2, j + 2).Text
Next j
Next i
End With
End Sub
自从您使用
模糊 objWord
而不是 将 objWord 调暗为新 Word.Application
例如,这意味着您正在使用后期绑定并且不能使用 Word 常量。因此,您需要更换
.PageSetup.Orientation = wdOrientLandscape
与
.PageSetup.Orientation = 1