1

Тема: Работа с таблицами в WORD

Подскажите, как полностью выделить первую строку в таблице и сделать её жирной? Это надо сделать для всех таблиц. Как пройтись по всем таблицам я знаю:

    Dim tbl As Table
    For Each tbl In ActiveDocument.Tables

    Next tbl

А как теперь в каждой таблице выделить именно 1-ю строку и сделать её жирной?

Заранее большое спасибо!

2

Re: Работа с таблицами в WORD

Rows(1) - первая строка
font.Bold = True - полужирный шрифт

3

Re: Работа с таблицами в WORD

    Dim tbl As Table
    For Each tbl In ActiveDocument.Tables
        tbl.Rows.First.Range.Font.Bold = True
    Next tbl
Лучше день потерять — потом за пять минут долететь!

4

Re: Работа с таблицами в WORD

Точно.. Про свойство Fist я как-то не подумал.. smile

5

Re: Работа с таблицами в WORD

Вот спасибо! А если усложнить задачу: если в таблице одна строка, тогда создать вторую (притом если есть столбцы то во второй строке их объединить) и ввести туда текст. Разумеется тоже для всех таблиц, в тот же цикл. Реально такое?

Отредактировано Route (27.07.2010 22:47:39)

6

Re: Работа с таблицами в WORD

Можно

Sub test()
  Dim oTbl As Table
  For Each oTbl In ActiveDocument.Tables
    If oTbl.Rows.Count = 1 Then
     With oTbl.Rows.Add
        If .Range.Columns.Count > 1 Then
          .Cells(1).Range.Text = "Текст"
          .Cells.Merge
        End If
      End With
    End If
  Next
End Sub
Лучше день потерять — потом за пять минут долететь!

7

Re: Работа с таблицами в WORD

Спасибо! работает! А как мне теперь макрос этот запихнуть в верхнею панель в виде кнопочки?

8

Re: Работа с таблицами в WORD

Вопрос снят! В настройках панели smile

9

Re: Работа с таблицами в WORD

Я уж думал, что не дождусь:)

Лучше день потерять — потом за пять минут долететь!

10

Re: Работа с таблицами в WORD

А помогите еще пожалуйста:

1. делаю замену и мне в замену надо вставить символ, но не пойму как:

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "бла бла бла"
        .Replacement.Text = "бла бла бла - ???"
        .Forward = False
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

вот вместо ??? мне надо что бы был символ: Selection.InsertSymbol Font:="Symbol", CharacterNumber:=-3975, Unicode:= _
Вот это! Я его записал макросом, но как вставить в  .Replacement.Text = "бла бла бла - ???" не пойму?!

2. Как сделать проверку если текст жирным тогда сделать обычным. И это по всему тексту.
вот так я просто выделяю весь текст и делаю жирным:

    Selection.WholeStory
    Selection.Font.Bold = wdToggle

а мне надо с проверкой, что бы повторно можно было макрос повторять...

3. И самое сложное пожалуй - мне надо что бы макрос прошелся по всем таблицам и в 1-ом столбце, но не учитывая самую первую верхнею ячейку столбца (т.е ячейку 0,0), сделал текст с выравнивание по левому краю?

Помоги пожалуйста.

Отредактировано Route (28.07.2010 13:21:38)

11

Re: Работа с таблицами в WORD

1 вопрос снят! Может можно и проще, но я сделал так: после дописал

    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "бла бла бла - "
        .Replacement.Text = "2"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.InsertSymbol Font:="Symbol", CharacterNumber:=-3975, Unicode:= _
        True

12

Re: Работа с таблицами в WORD

1.

.Replacement.Text = "^& - " & ChrW(3975)

2.

Selection.HomeKey wdStory
With Selection.Find
  .ClearFormatting
  .Replacement.ClearFormating
  .Font.Bold = True
  .Replacement.Font.Bold = False
  .Execute Replace:=wdReplaceAll
End With

3.

  Dim oTbl As Table
  For Each oTbl In ActiveDocument.Tables
    oTbl.Columns.First.Cells(1).Select
    With Selection
      .MoveDown
      .MoveDown wdLine, oTbl.Columns.First.Cells.Count - 2, wdExtend
      .ParagraphFormat.Alignment = wdAlignParagraphLeft
    End With
  Next
Лучше день потерять — потом за пять минут долететь!

13

Re: Работа с таблицами в WORD

2. ругается на .Replacement.ClearFormating

14

Re: Работа с таблицами в WORD

Сорри, Replacement.ClearFormatting. Писал на коленке

Лучше день потерять — потом за пять минут долететь!

15

Re: Работа с таблицами в WORD

Спасибо большое! Правда .Replacement.Text = "^& - " & ChrW(3975) как-то странно работает: не то что надо вставляет. оставил как я сделал.

16

Re: Работа с таблицами в WORD

Как это не то, что надо? Вам же нужно, найти текст и к нему добавить символ, правильно?

Лучше день потерять — потом за пять минут долететь!

17

Re: Работа с таблицами в WORD

ну я сделал так:

.Replacement.Text = "бла бла бла - ( " & ChrW(3975) & " , мин)"

Правильно?

Он мне после этого вставил совсем не тот символ.

18

Re: Работа с таблицами в WORD

Наверное, потому что тот символ вставляется шрифтом Symbol, а в данном случае шрифт не меняется. Что ж, можно пройтись вторым поиском и заменить шрифт этого символа на нужный:

.Text = ChrW(-3975)
.Replacement.Text = "^&"
.Replacement.Font.Name = "Symbol"
.Execute Replace:=wdReplaceAll

Да, и там код символа отрицательный, я упустил этот момент

Лучше день потерять — потом за пять минут долететь!