|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
Здравствуйте! Помогите пожалуйста решить с помощью VBA следующую проблему: в EXCEL у меня есть макрос, который обновляет данные на различных листах, соответственно когда я его запускаю получается не совсем приглядная картина: макрос бегает по листам и обновляет данные, соответственно всё прыгает и мелькает. Подскажите как сделать так чтобы EXCEL просто показал мне конечный РЕЗУЛЬТАТ работы макроса и не показывал сам процесс его работы. И ещё вопрос: может кто знает как с помощью VBA изменить значёк EXCEL (тот который находится в левом верхнем углу) или удалить его? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2003, 16:58 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
по поводу первого я правильной таблетки не знаю, но могу сказать, что делал сам на момент такой отработки делал Excel невидимым и соответственно никаких мельканий а потом опять отображал, проблемы будут, минус такого подхода когда ошибки повыскакивают... по поводу второго не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2003, 17:12 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
Application.ScreenUpdating = False ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2003, 17:23 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
Просто вместо Range("C10").Select и т.д., вставляй Worksheets("имя листа").Cells(номер строки, номер столбца). И делай с ячейкой все что хочешь.... Данную функцию можно применять, как слева от знака равно, так и справа, например... Worksheets("Лист1").Cells(1,1) = 2 так и i = Worksheets("Лист1").Cells(1,1) Здесь никакого моргания не будет, также к Worksheets("Лист1").Cells(1,1) можно применять различные функции, что заметно уменьшит объем текста программы...... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2003, 20:02 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
А если так: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2003, 18:53 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
Application.WindowState = xlMinimized '(бегает макрос) Application.WindowState = xlNormal А зачем, когда по Worksheets("Лист1").Cells(1,1) = 2 ничего никогда не бегает, а только на выделенном листе красиво цифорки изменяются.........или буковки. IMHO лишь заграмождение кода..... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2003, 10:37 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
А зачем, когда по Worksheets("Лист1").Cells(1,1) = 2 ничего никогда не бегает, а только на выделенном листе красиво цифорки изменяются.........или буковки. Зато макрос править надо. А потом отлаживать. Вопрос времени. Да и от мелькания изменяющихся цифирок/буковок не избавиться. Хотя, конечно, это лучше чем то, что получается после простой записи... ЗЫ. Кстати, что будет с макросом, если юзер вдруг решит поменять название с "Лист1" на "Первый Листик"??? ;о))) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2003, 17:28 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
Да, вот еще одна причина, по которой стоит использовать конструкцию Код: plaintext 1. 2.
Скорость выполнения макроса будет маленько повыше. Этак раза в полтора. Только за счет того, что не надо всякую х..ню прорисовывать. Запустите такой скриптик, посмотрите сами: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Имхо, есть разница - ждать минуту или полторы... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2003, 17:40 |
|
Проблема с макросом EXCEL
|
|||
---|---|---|---|
#18+
Если пользователь изменит наименнование листа, тогда вообще ничего не будет работать хоть с Application.WindowState = xlMinimized '(бегает макрос) Application.WindowState = xlNormal хоть без этого дела. Если только динамически имя его не узнаешь....Что же касается, быстроты, то да, возможно, хотя когда обрабатываешь 30 000 записей, то быстрота все равно снижается. Хотя вот странно, если несколько раз макрос запустить, то время будет снижаться, а после перезагрузки опять все встанет на свои места. Интересно, почему, вроде память не используется? Правка кода: мои письмена предназначены прежде всего тем, кто будет писать, чтобы не делали наших ошибок. А мелькание становиться другим, они просто изменяются, а не выделяются курсором-изменяются, так что так такового мелькания нет. А если пользователь захочет узнать какие сейчас текущие значения, или например, какую строку сейчас обрабатывает макрос. В моем варианте все показывается, притом самым наилучшим образом, а в вашем даже нельзя зайти в EXCEL. К тому, при работе с большим количеством строк и сложности алгоритма EXCEL любит висеть, и не известно, что мы делаем висим, или все же работаем. Скажете, что можно и по CTRL+ALT+DEL и смотри запущенные приложения, только вот иногда эта штука хорошо врет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2003, 19:03 |
|
|
start [/forum/topic.php?fid=60&msg=32150683&tid=2171263]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 273ms |
total: | 420ms |
0 / 0 |