powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word, Таблица, VBA. Два простых вопроса
13 сообщений из 13, страница 1 из 1
Word, Таблица, VBA. Два простых вопроса
    #37204260
Igor Mitichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В интернете полазил, книжку полистал, ничего путного не нашел.
Думаю, что проще спросить, чем еще день копаться в сети.

Итак. Word, Таблица, VBA

1. Надо выделить несколько столбцов и присвоить им определенные значения. Не знаю, как выделить несколько столбцов одновременно. Пока написал такой вот цикл, который выделяет столбцы по одному, но imho это бред (хоть и работает)

Код: plaintext
1.
2.
3.
4.
5.
For i =  2  To  8 
    Selection.Tables( 1 ).Cell( 1 , i).Select
    Selection.SelectColumn
    Selection.Columns.PreferredWidth = CentimetersToPoints( 2 )
Next i

2. Как выделить диапазон ячеек? (почему-то когда включаю запись макросов, выделение мышью перестает работать)

Разного рода конструкции типа
Selection.Range(Selection.Tables(1).Cells(1, 1), Selection.Tables(1).Cells(5, 3)).Select
вываливаются с ошибками. Я слова по разному пробовал переставлять местами. Не получается :((
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37204340
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Mitichev, создаёте объект, затем выделяете, ОК??
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37204399
Igor Mitichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

А пример кода можно продемонстрировать?
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37204432
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Mitichev,

дурная это затея выделять, я от этого избавляюсь:
Код: plaintext
1.
Set myRange = ActiveDocument.Range(myTable.Rows(intОбъединили_ячеек_штук(w)).Cells( 3 ).Range.Start, myTable.Rows(intОбъединили_ячеек_штук(w)).Cells( 5 ).Range.End) 'создаём объект - две ячейки таблицы
myRange.Select 'выделить ячейки
Передалаете под себя, ОК??
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37204518
Igor Mitichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

Ага, спасибо. Я после Rows не догадался .Cells поставаить, поэтому ничего и не получалось.
Теперь все работает:
Код: plaintext
1.
2.
3.
4.
With ActiveDocument
 .Range( _
        .Tables( 1 ).Rows( 3 ).Cells( 2 ).Range.Start, _
        .Tables( 1 ).Rows( 7 ).Cells( 8 ).Range.End).Select
End With

А первый вопрос? Тут можно как-то обойтись без цикла?

Код: plaintext
1.
2.
3.
For i =  2  To  8 
    ActiveDocument.Tables( 1 ).Columns(i).PreferredWidth = CentimetersToPoints( 2 )
Next i

Такой код:
Код: plaintext
1.
2.
3.
4.
With ActiveDocument
 .Range( _
        .Tables( 1 ).Columns( 2 ).Range.Start, _
        .Tables( 1 ).Columns( 8 ).Range.End).Select
End With

дает ошибку, метод не поддерживается. Хотя для rows поддерживается... :(
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37204571
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Mitichev,

авторWith ActiveDocument
.Range( _
.Tables(1).Columns(2).Range.Start, _
.Tables(1).Columns(8).Range.End).Select
End With


дает ошибку, метод не поддерживается. Хотя для rows поддерживается... :(

вы пытаетесь на некоторых строках изменить ширину столбцов, на других оставить старым значением

это уже не таблица -- а некое кривобокое сооружение

посмотрите
-таблица -свойства-параметры
---поля ячеек=0
-таблица -свойства
---автоподбор по ширине страницы и по содержанию

если очень хочется несколько столбцов в середине таблицы изуродовать
-разбейте таблицу на 3 части
-в средней делайте свое черное дело
-параграфы между частями сделайте с размером шрифта=1
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37204863
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ни чё я не понял, был вопрос
Надо выделить несколько столбцов и присвоить им определенные значения
Никакого цикла для этого не нужно
хотите выделить 1 - 5 столбец\строчку\ячейку создаёте объект с началом 1 столбец\строчку\ячейку и конца 5 столбец\строчку\ячейку
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37205203
Igor Mitichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюхотите выделить 1 - 5 столбец\строчку\ячейку создаёте объект с началом 1 столбец\строчку\ячейку и конца 5 столбец\строчку\ячейку
Все равно не получается. Выделение все время происходит только в первой таблице. Я файлик приложу. Там надо запустить макрос MyTest. Оно иллюстрирует суть проблемы. По stop видно, что все время выделяются одни и те же ячейки. Пробовал менять номер таблицы - вообще с ошибкой вываливается...
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37205315
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Mitichev,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Dim tabnum
Dim i As Long
Dim myRange As Range
Sub MyTest()
Selection.TypeText Text:="òòò"

    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:= 1 
 Selection.TypeParagraph
 Selection.TypeParagraph
 Selection.MoveUp Unit:=wdLine, Count:= 1 , Extend:=wdExtend
 
tabnum = Word.ActiveDocument.Tables.Count
 
For i =  1  To  3 
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:= 7 , NumColumns:= 8  + i
    tabnum = Word.ActiveDocument.Tables.Count
    With ActiveDocument.Tables(tabnum)
      .Cell( 1 ,  1 ).Select
      .Columns.PreferredWidth = CentimetersToPoints(i)
      .Rows( 1 ).Cells( 1 ).Range.Text = i
    End With
    
    With ActiveDocument
       Set myRange = .Range(.Tables(tabnum).Rows( 1 ).Cells( 2 ).Range.Start, _
                     .Tables(tabnum).Rows( 7 ).Cells( 8 ).Range.End)

       myRange.Select
       Selection.Columns.PreferredWidth = CentimetersToPoints( 0 . 5 )
    End With

''Stop

Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
Selection.TypeParagraph
Selection.MoveUp Unit:=wdLine, Count:= 1 , Extend:=wdExtend
'tabNum = tabNum + 1
Next i

End Sub

...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #37205327
Igor Mitichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

Спасибо, работает, завтра буду разбираться :))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Word, Таблица, VBA. Два простых вопроса
    #40084489
KIAStinger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здравствуйте!
Создается таблица с 4-мя столбцами и (впоследствии) со множеством строк:
Код: vbnet
1.
          Set Table = Doc.Tables.Add(Doc.Bookmarks.Item("\endofdoc").Range, iGame, 4)

Сначала в этой таблице создается 1-я строка (шапка) с текстами во всех 4-х ячейках:
Код: vbnet
1.
2.
3.
4.
          Table.Cell(1, 1).Range.Text = "Текст1"
	  Table.Cell(1, 2).Range.Text = "Текст2"
	  Table.Cell(1, 3).Range.Text = "Текст3"
	  Table.Cell(1, 4).Range.Text = "Текст4"


Форматируется (автоширина, выравнивание по центру , шрифт ( ЖИРНЫЙ ), обрамление):
Код: vbnet
1.
2.
3.
4.
5.
          Table.Rows.Item(1).Range.Font. ....
          Table.Columns(1/2/3/4).AutoFit
          Table.Cell(1, 1/2/3/4).Borders(-1/2/3/4).LineStyle = 1
          Table.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
	  Table.Cell(1,1/2/3/4).VerticalAlignment=xlCenter


И все бы хорошо, пока не добавляются далее в эту таблицу строки...
Текст в добавляемых строках также форматируется по автоширине, шрифту (ОБЫЧНЫЙ), обрамлению, КРОМЕ ВЫРАВНИВАНИЯ .
В итоге в 1-й строке таблицы (шапке) пропадает njkmrj выравнивание по центру, но при этом жирный шрифт остается.
Вопрос - как сохранить выравнивание по центру в 1-й строке таблицы? Подскажите, пожалуйста код.
Заранее спасибо! Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #40084492
KIAStinger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скрин к предыдущему сообщению
...
Рейтинг: 0 / 0
Word, Таблица, VBA. Два простых вопроса
    #40084493
KIAStinger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KIAStinger
Скрин к предыдущему сообщению

Скрин слегка неубедительный - короче, считайте, что все сдвинуто влево (так и есть на самом деле).
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word, Таблица, VBA. Два простых вопроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]