2016-04-07 9 views
-2

Мой сценарий - это документ с одной таблицей с двумя столбцами. Я читаю из базы данных и заполняя каждую строку/столбец, но для некоторых записей я хочу объединить два столбца в одну ячейку и заполнить их как строку, а затем продолжить двухэтапный сценарий. Я хочу выпустить инструкцию VBA, чтобы объединить две ячейки вместе, чтобы сделать одну ячейку по всей строке. Это невозможно «записать» в качестве нового макроса. Я не знаю, что такое номер строки во время выполнения, я знаю только номера столбцов. Моя строка поиска: «Word 2013» VBA table merge cells », но я получаю много сайтов, которые показывают вам, как это сделать вручную, а не с кодом VBA.Код VBA для объединения двух ячеек вместе

Мой текущий код:

With ActiveDocument.Tables(1) 
.Cell(Row:=1, Column:=1).merge _ 
MergeTo:=.Cell(Row:=1, Column:=2) 
.Borders.Enable = True 
End With 

В документе, у меня есть небольшой столик одной строки и двух столбцов. Но я должен иметь таблицу из трех строк с любой смесью столбцов, не так ли? Я просто хочу выбрать любые два столбца и объединить их вместе, чтобы сделать одно пространство, но во время выполнения я не знаю, какой номер строки предоставить.

+0

Мой документ является шаблоном .dotm, который содержит ранее существовавшую таблицу из одной строки, двух столбцов. При запуске он считывает данные из базы данных. По мере чтения записей в таблицу добавляется новая строка. Если появляется определенное значение базы данных, я хочу объединить две ячейки строки в одну ячейку для строки и поместить в эту строку «информацию заголовка». После этого я хочу продолжить чтение данных, следующие строки будут двумя столбцами снова. Надеюсь, это читаемо. Это звучит так сложно, но мой план кажется очень простым. –

+0

https://msdn.microsoft.com/en-us/library/office/ff821310.aspx –

+0

Спасибо, Тим Уильямс, за вашу ссылку. Однако это не сработает. Я получаю сообщение об ошибке: Ошибка выполнения «5941»: запрашиваемый член коллекции не существует. –

ответ

0

Я, наконец, получил это, и я хочу еще раз поблагодарить вас за помощь. Вот мой текущий код. Весь документ - одна таблица из двух столбцов, тощая и включает гиперссылки, чтобы ее можно было читать и переходить на iPhone. Когда значение Единицы изменяется в данных, я хочу: 1) вставить новую строку ниже и объединить ее в один столбец, добавить ссылку «Go Home», а затем продолжить добавление двух столбцов.

Документ, наконец, преобразован в .PDF и доступен пользователям iOS.

'Add a row for a 'back to home' link 
    If (intUnitOrder > intCurrentUnit) Then 
     Selection.InsertRowsBelow (1) 
     rowno = Selection.Information(wdEndOfRangeRowNumber) - 1 
     With ActiveDocument.Tables(1) 
     .Cell(Row:=rowno, Column:=1).Merge MergeTo:=.Cell(Row:=rowno, _ 
     Column:=2) 
     End With 

     Selection.Tables(1).Rows(rowno).Range.ParagraphFormat. _ 
     Alignment = wdAlignParagraphRight 
     Selection.Shading.BackgroundPatternColor = RGB(230, 230, 230) 
     Selection.Font.ColorIndex = wdBlue 
     Selection.Font.Italic = True 

     ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _ 
     Address:="#Home", SubAddress:="", _ 
     ScreenTip:="Go back to the top", _ 
     TextToDisplay:="back to Home" 

     Selection.MoveDown wdLine, 1 
     intCurrentUnit = intUnitOrder 
    End If 
Смежные вопросы