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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2015, 09:49   #1
яСергейМ
 
Регистрация: 13.10.2015
Сообщений: 7
По умолчанию Дерганье экрана, не смотря на Application.ScreenUpdating = False

Добрый день.
Ворд 2007. Вложенный макрос должен строки таблицы 1 заменить строками таблицы 2.
Он это и делает, но несмотря на Application.ScreenUpdating = False экран всё равно дергается и показывается верхушка таблицы 2. А не должна.

Как избавится от дёрганья?
Вложения
Тип файла: doc На Форум3.doc (62.0 Кб, 9 просмотров)
яСергейМ вне форума Ответить с цитированием
Старый 13.10.2015, 13:19   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

что дёргается, Вы простынь держите шёлковую и измеряете колыханье?
у меня не дёргается и это на мой взгляд подёргивание, если оно и есть не критично
Ципихович Эндрю вне форума Ответить с цитированием
Старый 13.10.2015, 19:26   #3
яСергейМ
 
Регистрация: 13.10.2015
Сообщений: 7
По умолчанию

Ципихович Эндрю, я не сижу со штангенциркулем у монитора. Какие "колыхания"?
В примере перед запуском команды на экране одна таблица, а при выполнении показывается верхушка другой.
А реальном файле, в котором таких команд около 10, идут они одна за другой и таблиц много, они большие и цветные. И это не "колыхание", а конкретное дёрганье!
Я выложил маленький пример и спросил СОВЕТА. Попытки сарказма мне ни к чему.
По делу есть что сказать?

PS. Кстати, в коде заменяются строки. В принципе, можно заменить и целую таблицу. Я это пробовал, но дерганье точно такое же, т.к. Select-ы есть, как я понимаю. Может кто-то подскажет, как вместо одной таблицы вставить другую БЕЗ Select-ов?

Последний раз редактировалось яСергейМ; 13.10.2015 в 19:32.
яСергейМ вне форума Ответить с цитированием
Старый 13.10.2015, 20:38   #4
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

никакого сарказма не было, я пробовал на том, что было приложено
>как вместо одной таблицы вставить другую БЕЗ Select-ов
макрорекодером не пробовали?
удалить такую-то
вставить такую-то
Ципихович Эндрю вне форума Ответить с цитированием
Старый 14.10.2015, 11:14   #5
яСергейМ
 
Регистрация: 13.10.2015
Сообщений: 7
По умолчанию

Как раз удаление старых строк (или таблицы) с добавлением новых строк (или новой таблицы) я записывал макрорекодером. И без Select-ов не обошлось.

Вопрос в силе.

Последний раз редактировалось яСергейМ; 14.10.2015 в 15:53.
яСергейМ вне форума Ответить с цитированием
Старый 14.10.2015, 18:27   #6
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

например пишите
ActiveDocument.Tables(1).Rows(1)
точку ставите и там как вариант будет предложено Delete - вот и удаление 1 табл, 1 строки
Ципихович Эндрю вне форума Ответить с цитированием
Старый 14.10.2015, 21:00   #7
яСергейМ
 
Регистрация: 13.10.2015
Сообщений: 7
По умолчанию

Да, это есть такое ("ActiveDocument.Tables(1).Delete") .
А вот вставить другую таблицу, а лучше строки, без Select-ов как?
яСергейМ вне форума Ответить с цитированием
Старый 15.10.2015, 07:19   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Код:
  'добавить в первой таблице документа строку
        ActiveDocument.Range.Tables(1).Rows.Add
Ципихович Эндрю вне форума Ответить с цитированием
Старый 15.10.2015, 07:22   #9
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Код:
'вставить ниже в таблице - это Below, строк в количестве ..., Above - это вставить выше
            Selection.InsertRowsBelow 1
Ципихович Эндрю вне форума Ответить с цитированием
Старый 15.10.2015, 08:32   #10
яСергейМ
 
Регистрация: 13.10.2015
Сообщений: 7
По умолчанию

Ципихович Эндрю, но ведь это не то, что надо.
Мне ведь надо добавлять не пустые строки, а копии из второй таблицы. Либо просто вместо таблицы 1 вставить таблицу 2.
Кстати, "ActiveDocument.Tables(1).Delet e" таблицу таки удаляет.
А вот
" With ActiveDocument
.Range( _
.Tables(2).Rows(1).Cells(1).Range.S tart, _
.Tables(2).Rows(n - 1).Cells(1).Range.End).Delete
End With "
строки НЕ удаляет, а очищает.

Поэтому, к сожалению, Ваши строки мне никак не помогают.
яСергейМ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
True И False noisor Паскаль, Turbo Pascal, PascalABC.NET 15 16.11.2014 20:40
Окно закрывается не смотря на EExternalException DeveloPerchik Общие вопросы Delphi 14 25.03.2013 21:19
Application.ScreenUpdating = False Ципихович Эндрю Microsoft Office Word 3 25.02.2011 17:11
Интерпретатор FALSE Granus Софт 2 13.08.2010 11:37
False,True Jony Wocker Общие вопросы C/C++ 2 06.02.2010 00:42