Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 5
1

Виснет файл после выполнения макроса

26.10.2014, 01:18. Показов 5025. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер!

Проблема следующая: после выполнения макроса по добавлению строк в файл excel - файл начинает ужасно виснуть. То же самое делаю вручную - все отлично, макросом - виснет. В другом файле помогло после того как отлючила применение функции "формат по образцу". Тут не помогло.
Основные используемые функции (кусок кода):

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 Range("A" & r - 1 & ":M" & r - 1).Select
        Selection.Copy
        Range("A" & r).Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        .Cells(r, 1) = i
        Selection.Replace What:="[" & zak_pr, Replacement:="[" & s, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
         Range("C" & r).Select
        Application.ReferenceStyle = xlA1
        ActiveCell.FormulaR1C1 = _
        "='[" & i & ".xls]Лист1'!R[" & 11 - r & "]C[-1]"
        ActiveCell.FormulaR1C1 = _
        "=RC[-3]-RC[-2]-RC[-1]"
         Range("I" & r - 1).Select
        Selection.Copy
        Range("I" & r).Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Range("K" & r).Select
        ActiveCell.FormulaR1C1 = _
        "='[" & i & ".xls]Лист1'!R6C23"
И так несколько значений ячеек добавляется. Остальные функции: открытие файла и присваивание значение переменной.

Из-за чего это может происходить??????
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2014, 01:18
Ответы с готовыми решениями:

Развернуть файл после выполнения макроса
Всем добрый день. Хочу сразу сказать, что я полный чайник и только недавно начал изучать что такое...

Удаление макроса после выполнения
Всем привет! Нужна помощь в доработке макроса. Имеется файл *.xls с макросом который объединяет...

После выполнения макроса не закрывает книгу
Добрый день, Возникла проблема закрытии книги при использование шедулера. То есть, При отрывание...

Проиграть звук после выполнения макроса
Здравствуйте! Возникла нужда в следующем. Хочу чтобы проигрывался звук после выполнения макроса....

8
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,221
26.10.2014, 08:06 2
1. Select ов много. Можно обойтсь без них
2. Какой глубокий смісл заложен в строке 12 если в следующей строке назначается другая формула.
Сразу нельзя было
0
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
27.10.2014, 11:31 3
Простите, это не макрос а кусок из букв. Из контекста вылетело выражение With ... End With, используемые переменные, их объявление и инициализация... Код никуда не годится по качеству написания. Выклыдывая такое на форум, Вы чего-то ожидали, правда?
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 5
04.11.2014, 09:30  [ТС] 4
Alex77755,

я понимаю. Ваши комментарии вполне обоснованы.
Но проблема не в этом:
макрос отрабатывает, делает то, что нужно.
Сейчас мне абсолютно фиолетово, за сколько он это делает, хоть за час.
Проблема в том, что файл после этого начинает ужасно виснуть.
0
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,221
04.11.2014, 09:32 5
Скорей всего это из-за обилия формул
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 5
04.11.2014, 09:41  [ТС] 6
mc-black,

Да, ожидала ответа на решение проблемы.
Остальное удалила т.к. там стандартные функции открытия файла и расчет количества строк. И все.
Дальше запускаю этот цикл.
Я не думаю, что в них могут быть проблемы.
Этот код я использовала впервые, поэтому думаю, что проблема может быть в нем.
Я не хотела тратить Ваше время на то, в чем не может быть проблемы.
Спасибо!

P.S. по-прежнему не решила проблему(

Добавлено через 47 секунд
Добавлено через 3 минуты
Alex77755,

Вы думаете?

Проще трудно сделать. Мне нужно "собрать" определенные данные с разных файлов в один. 12 значений для каждой строки(( Что смогла, уменьшила: убрала ссылки, оставила просто формулы. Но проблемы не решилась.

Макрос отрабатывает достаточно быстро. Но все равно, при дальнейшей работе с ним, виснет и в конце концов "обнаружена проблема"....
0
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,221
04.11.2014, 09:47 7
Смоделировал ситуацию. Нормально отработалось.
Вообще-то моё мнение: не делать связки в виде ссылок на другие книги.
Лучше макросом собирать значения.
На крайняк можно попробовать заменить форрмулы значениями
Visual Basic
1
UsedRange.Value = UsedRange.Value
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 5
04.11.2014, 09:59  [ТС] 8
Alex77755,

Отвечу на "почему ссылки":
просто потом используют разные люди, которые заполняют файлы из которых обновляются данные.
Соответственно обновляется общий файл ( в который я собрала данные первоначально).
Поэтому на данном этапе "не ссылками", не вариант: нужно разруливать постоянное обновление файла опять же, но только уже другим макросом.

Повторюсь: в другом файле помогло когда убрала
Visual Basic
1
2
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Потом просто вручную применяла формат по образцу

Последствия были такие же: зависание файла.
Но тут это не помогло((

Может еще идеи есть?
0
6944 / 2849 / 548
Регистрация: 19.10.2012
Сообщений: 8,722
05.11.2014, 09:38 9
А эти i & .xls и s открыты когда отрабатывает макрос? Я бы сразу писал полный путь к к этим книгам. Попробуйте.
0
05.11.2014, 09:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2014, 09:38
Помогаю со студенческими работами здесь

После выполнения макроса, сохранение книги - ошибка
Всем доброго времени суток. Есть пара макросов в личной книге макросов. Первый. Sub...

Что произойдет после выполнения следующего макроса?
Что произойдет после выполнения следующего макроса? Sub Макрос2() With Selection.Font .Name =...

Выделение текста в TextBox после выполнения макроса
Добрый день, коллеги! Случилась проблема, никак не могу выйти из ситуации. Есть textbox на...

Если значение ячейки изменилось после выполнения макроса, то подсветить желтым
Добрый день, форумчане! Есть таблица с данными. Макрос выполняет перезаполнение этой же таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru