Я использую макрос VBA для вставки строк (двух столбцов) в документ слова. Проблема вставленные строки не заполняют всю страницу и все столбцы не имеют одинаковую ширину:Развернуть таблицу Word VBA
Мой вопрос: как дать одинаковую ширину для всех столбцов и расширить таблицу, чтобы заполнить ширину страницы?
Вот моя функция:
Private Function CreateWordDoc(ByVal wrdApp As Word.Application, ByRef Objects() As OwnClass, ByVal sFilename As String, ByVal sPath As String)
Dim i As Integer
Dim wrdDoc As Word.Document
Dim MyObj As OwnClass
Dim wrdTppTable As Word.Table
Set wrdDoc = wrdApp.Documents.Add(sFilename, Visible:=True)
Set wrdTppTable = wrdDoc.Tables(2)
For i = 0 To UBound(Objects) - 1
Set MyObj = Objects(i)
' Add a row to the table and select it
wrdTppTable.Rows.Add.Select
' Work with the selected row
With wrdApp.Selection.Range
' Make sure the row is on two columns
.Cells.Split 1, 2, True
' Set the text font parameters
With .Font
.ColorIndex = wdBlack
.name = "Arial"
.size = 11
.Bold = False
End With
' Write text in the cell
.Text = MyObj.GetKey & ": " & MyObj.GetValue
' Then select the next cell in the row
.Next.Select
End With
' Work with the second column of the row
wrdApp.Selection.Cells.SetWidth 54, RulerStyle:=wdAdjustFirstColumn
With wrdApp.Selection.Range
With .Font
.ColorIndex = wdBlack
.name = "Arial"
.size = 11
.Bold = False
End With
' Write the cell
.Text = MyObj.GetId
End With
Next
End Function
Вы можете установить ширину столбца, непосредственно влияя на это свойство (.Columns (x) .Width). С другой стороны, у меня нет слишком четких различных частей вашего кода; например: почему вы раскалываете снова и снова, вместо того, чтобы создавать число столбцов, которое вы хотите (а, разумеется, разбивать на определенную строку)? – varocarbas
Я совершенно новый для VBA с Word. Я не уверен, что расщепление - лучший способ сделать это. Я открываю любое предложение кода. Если он у вас есть, я был бы рад увидеть это. Не стесняйтесь отвечать и размещать некоторый код;) Для информации я добавляю строки в шаблон слова, и шаблон уже содержит таблицу с одной строкой (заголовком), но только с одним столбцом. Все остальные строки должны иметь два столбца. – Maxbester
Делает смысл :) Я написал ответ с требуемым кодом, чтобы исправить проблемы с изменением размера; удалите все разделители setWidths из вашего кода и просто напишите это сверху. – varocarbas