Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2013, 15:51   #1
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию Обновление данных в таблице Word.

Чтобы понять, в чём проблема, создайте пустой Word-файл и запустите в нём этот макрос.
Вы увидите, что ширина столбцов не соответствует тому, что было в макросе.
Скажите, пожалуйста, как обновить таблицу после изменения ширины столбцов?

Если поставить точку остановки в VBA после установки ширины, а затем заново продолжить работу макроса, то ширина столбцов сохраняется.
Код:
Sub Procedure_1()

    Dim myTable As Word.Table
    Dim i As Long
    
    
    Set myTable = _
        ActiveDocument.Tables.Add(Range:=ActiveDocument.Range, _
                                NumRows:=10, NumColumns:=5)
    
    myTable.Columns(1).PreferredWidthType = wdPreferredWidthPoints
    For i = 1 To 5 Step 1
        myTable.Columns(i).PreferredWidth = 50
    Next i
    
    For i = 1 To 10 Step 1
        myTable.Cell(i, 1).Merge myTable.Cell(i, 2)
    Next i
    
End Sub
Примечание

Такая проблема наблюдается только у таблиц, которые макрос создал или при объединении таблиц. У существующих таблиц такой проблемы нет.
Скрипт вне форума Ответить с цитированием
Старый 22.11.2013, 16:26   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию ширина столбцов

получила строго 40-20-20-20 %
ок"

вы 5-ти столбцам дали по 50%
машина решила , что вы ошиблмсь и пропорционально уменьшила сумму с 250 до 100 %
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание

Последний раз редактировалось shanemac51; 22.11.2013 в 16:31.
shanemac51 вне форума Ответить с цитированием
Старый 22.11.2013, 16:30   #3
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

shanemac51, в макросе, вот эта строка:
Код:
myTable.Columns(1).PreferredWidthType = wdPreferredWidthPoints
делает ширину в сантиметрах.
Почему Вы пишите про проценты?
Скрипт вне форума Ответить с цитированием
Старый 22.11.2013, 16:34   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Так эта строчка только первой колонке PreferredWidthType меняет, не?
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 22.11.2013, 16:36   #5
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Luuzuk, достаточно у одного столбца сделать "PreferredWidthType" и у всех столбцов будет так же. Можно и у одной ячейки сделать и у всех столбцов будет так же.
Скрипт вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление данных в таблице из формы Айвенго Microsoft Office Access 7 01.02.2013 14:46
Обновление данных в таблице из формы. Lexx_Luthor Microsoft Office Access 2 12.07.2012 19:44
Обновление записей в таблице ua3pno Microsoft Office Access 4 20.02.2011 19:56
Обновление данных в сводной таблице Tolikv Microsoft Office Excel 13 11.06.2010 14:54
Обновление данных в основной таблице из выделенных ячеек дополнительной semjenion Microsoft Office Excel 6 09.04.2010 17:52