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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2009, 22:27   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию Запоминание ячеек в память

Нужна функция: для каждого листа, кроме "Инфо", должны запомниться в память все значения ячеек из диапазона sh.Cells(2, 2), sh.Cells.SpecialCells(xlCellTypeLas tCell).
И вторая, которая все эти значения возвращает обратно в ячейки.
motorway вне форума Ответить с цитированием
Старый 07.07.2009, 22:35   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот код для одного листа:
Код:
Dim arr1()

Sub Запоминание()
    Dim sh As Worksheet: Set sh = Worksheets(1)
    arr1 = sh.Range(sh.[b2], sh.Cells.SpecialCells(11))
    sh.Cells.Clear ' очистка листа (для примера)
End Sub

Sub ВосстановлениеДанных()
    Dim sh As Worksheet: Set sh = Worksheets(1)
    sh.Range(sh.[b2], sh.Cells.SpecialCells(11)) = arr1
End Sub
Самостоятельно реализуйте цикл по листам - примеры есть на форуме.
Массивов понадобится столько, сколько листов в книге.
EducatedFool вне форума Ответить с цитированием
Старый 07.07.2009, 22:42   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

2 проблемы: как объявлять массивы с новым именем, т.е. имя должно создаваться динамически? И как вызвать функцию Запоминание()? Если ее вызвать в Sub Кнопка1_Щелчок(), не работает - syntax error.
motorway вне форума Ответить с цитированием
Старый 08.07.2009, 08:31   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В программном модуле объявите глобальные переменные:
Код:
Public arr1() As Variant
Public arr2() As Variant
и т.д. Сколько листов, столько и массивов.
После этого, занесенные в массив значения будут доступны в любое время из любой процедуры.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запоминание координат при перемещении формы Shouldercannon Общие вопросы Delphi 5 21.06.2009 23:11
Как осуществить запоминание объектов? Djem1991 Общие вопросы Delphi 4 06.01.2009 14:09
Запоминание цифр romul87 Общие вопросы Delphi 3 10.10.2008 18:54
Динамическая память MadDog__ Помощь студентам 2 22.11.2007 00:05