![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 05.12.2011
Сообщений: 3
|
![]()
Помогите пожалуйста!
Нужен макрос запускаемый в открытой книге1, в котором необходимо получить номер строки с последней записью, закрытой книги2 (именно закрытой) |
![]() |
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
один из вариантов - запрос данных в RecordSet.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 05.12.2011
Сообщений: 3
|
![]()
На самом деле мне нужно дополнять таблицу книги1 данными из книги2.
Пробовал тупо каждый раз переписывать все необходимые данные из закрытой книги2 в открытую книгу1, With Worksheets("ЛистХ") .Range("Диапазон1").Formula = "='" & путь к файлу1 & ЛистХ & "'!" &"Диапазон1" ... .Range("Диапазон2").Formula = "='" & путь к файлу2 &ЛистХ & "'!" &"Диапазон2" End With но данных в каждом диапазоне так много, что обновление затягивалось на долгое время(иногда excel просто зависал), поэтому при использование recordset(а он если мне не изменяет память создается в оперативке) может происходить такой же висяк, а зная последнюю запись в закрытой книге можно переписывать в открытую книгу совсем немного. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
![]()
recordset тоже открывает книгу. И простая формула со ссылкой открывает. Просто Вам этого не показывают.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 15.12.2009
Сообщений: 1,448
|
![]()
Серёг,насчёт рекордсета я не в курсе, а вот формулы со ссылками книги не открывают. Я проверял с помощью макросов наших MVP. Или есть ещё какой режим открытия книги, кроме видимого и скрытого? Типа как Very Hidden?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru https://yoomoney.ru: 41001419691823 |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
![]() Цитата:
------------------- G_D_A , дополняйте свои записи , через ADO и Вам вообще не придется отслеживать последнюю строку файла ![]() по поводу занимаемой памяти рекордсетом, да он в оперативной памяти, но записи в него подгружаются постранично и полное заполнение данными происходит в момент операций выгрузки (массив, на лист, в txt) и тому подобных операциях.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
![]()
Серж, как в анекдоте "такой большой, а в сказки веришь":-) Как по-твоему обновляются ссылки? Сектора с диска считываются? Что получим после дефрагментации? Файл по-любому надо прочитать. Другое дело, что окно при этом не создается(а может и создается), доступ типа binaryaccess, возможно, индексное чтение по связям. Никакой работы с графикой для открываемого файла. В тонкости я не вникал, но очевидно, чтоб что-то увидеть, надо на это что-то посмотреть. Ну, или грибов поесть:-)
По теме - я не сравнивал, но скорей всего способ определения границ через RecordSet очень быстрый(никакой графики), но может и достаточно получить это через getobject или open в режиме readonly, не обновляя экран. А так, как делает автор "каждый раз переписывать все необходимые данные", еще и вставляя не данные, а ссылки на них(может и забыв отключить автопересчет) - тормозной вариант. ZVI как-то предложил блестящий способ - через ссылку из одной ячейки на именованный диапазон считать в массив все данные диапазона и одним махом высыпать на лист значения. При этом файл явно не открывается(open, getobject), но именованный диапазон в нем вычисляется и создается при каждом сохранении книги. П.С. Привет, Дим:-)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 Последний раз редактировалось kuklp; 14.01.2012 в 09:25. |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 15.12.2009
Сообщений: 1,448
|
![]()
Тогда что считать "открытием книги"?
Люди-то что хотят? Что бы не тормозило и не видно было. А как это на программном уровне происходит - какая разница? Ежу понятно, что данные из ничего не возьмутся, но тут вопрос уже в определениях...
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru https://yoomoney.ru: 41001419691823 |
![]() |
![]() |
![]() |
#9 |
Регистрация: 05.12.2011
Сообщений: 3
|
![]()
Спасибо за советы! Буду пробовать
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Копирование листов из закрытой книги | rubius2008 | Microsoft Office Excel | 6 | 05.02.2011 22:44 |
Как получить имя последней подпапки в папке? | artemavd | Общие вопросы Delphi | 6 | 04.02.2011 14:58 |
СУММЕСЛИ из закрытой книги | Sha | Microsoft Office Excel | 1 | 16.12.2009 17:09 |
Копирование из закрытой книги | Maxx | Microsoft Office Excel | 11 | 11.08.2009 10:39 |
Экспорт данных из закрытой книги как это организовать? | Дмитрий Фукс | Microsoft Office Excel | 11 | 06.04.2009 23:42 |