将 Excel VBA 创建的新 Word 文档设置为横向

问题描述 投票:0回答:1

我有一个 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
excel vba ms-word
1个回答
0
投票

自从您使用

模糊 objWord

而不是 将 objWord 调暗为新 Word.Application

例如,这意味着您正在使用后期绑定并且不能使用 Word 常量。因此,您需要更换

.PageSetup.Orientation = wdOrientLandscape

.PageSetup.Orientation = 1

© www.soinside.com 2019 - 2024. All rights reserved.