|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.05.2009, 14:04 | #1 |
Регистрация: 03.05.2009
Сообщений: 6
|
хранение данных в Excel
Уважаемые, подскажите начинающему.
Стоит такая задача: в Excel поступают внешние данные (раз в секунду примерно), происходит определенный обсчет, для чего используется матрица коэффициентов, которые сохраняются в таблице. т.е. в начале процедуры загружаем коэффициенты в переменные из ячеек, считаем, а потом обратно сохраняем обновленные коэффициенты. В коде у меня это выглядит вот так: Код:
и нет ли в VBA возможности жестко связать ячейку и переменную, что бы любое изменение переменной сразу автоматически отражалось в таблице? интуитивно чувствую, что есть более простое решение, но знаний пока не хватает. заранее спасибо Последний раз редактировалось Maka111; 03.05.2009 в 14:17. Причина: исправлен код |
03.05.2009, 14:14 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Что-то я не понял вот этой записи:
Код:
Попробуйте так - будет намного быстрее: Код:
Код:
|
03.05.2009, 14:25 | #3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
вот это меняет местами первые 5 ячеек первой и второй строк.
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
03.05.2009, 14:41 | #4 |
Регистрация: 03.05.2009
Сообщений: 6
|
to EducatedFool:
неточность с а4 и а3 исправил конструкция: W01 = Range("al3").Resize(Nrn0, Nrn1).Value выдает: can't assign to array а вот это: Range("al3").Resize(Nrn0, Nrn1).Value = W01 работает to IgorGO: честно говоря не совсем понял как это использовать |
03.05.2009, 14:59 | #5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Лучше сразу задать массив W01 с нужными размерностями, чтобы не переносить данные из одного массива в другой: Код:
Код:
|
|
04.05.2009, 09:50 | #6 | |
Регистрация: 03.05.2009
Сообщений: 6
|
Цитата:
Nrn0 и Nrn1 - константы как может быть несоответствие размерности вот тут: W01 = Range("am3").Resize(Nrn0, Nrn1).Value |
|
04.05.2009, 10:10 | #7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Либо Nrn1 больше 216, и диапазон Range("am3").Resize(Nrn0, Nrn1) выходит за пределы листа, либо неправильно задан массив.
Попробуйте указать нижнюю границу массива (по умолчанию она равна нулю). Вот так будет работать: Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
хранение данных в файле (dc++) | AsabeasT | Общие вопросы Delphi | 2 | 27.03.2009 11:57 |
Хранение дисков | Levsha100 | Свободное общение | 24 | 04.02.2009 15:58 |
Хранение TColor в Access | $teelR@t | БД в Delphi | 2 | 20.09.2007 13:56 |
Хранение и шифрование данных | Paul Hindenburg | БД в Delphi | 1 | 20.08.2007 09:04 |