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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 11:43   #1
budmit
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 10
По умолчанию Как обновлять значения в ячейках автоматически? и упростить код?

Подскажите, пожалуйста, как упростить код и сделать его читабельнее :
значение ячеек являются некими параметрами и используется в коде - в логике
внутри логики их значения меняются
эти изменения надо чтобы приводили к изменению значения в отображаемой ячейки
при этом нет желания переприсваивать значение постоянно - это захламляет код.
ну и логику описывать без ссылок на конретные ячейки а только единожды связав переменную с конкретной ячейкой.
Надеюсь понятно объяснил .
Спасибо.
budmit вне форума Ответить с цитированием
Старый 20.06.2011, 12:25   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Цитата:
Сообщение от budmit Посмотреть сообщение
Подскажите, пожалуйста, как упростить код и сделать его читабельнее :
...
Надеюсь понятно объяснил .
Спасибо.
Не-а! Варианты:
1) прочитать правила форума, выложить файл со своим макросом - Вам постараются помочь;
2) почитать форум, тут полно примеров блестящего программирования(это дольше, но и результат для Вас полезней).
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 20.06.2011, 12:48   #3
budmit
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 10
По умолчанию вот кусок кода

' область связывания переменных с ячейками
Сorrect = Worksheets("dde").Cells(8, 2)
pips = Worksheets("dde").Cells(9, 2)
LastPr = Worksheets("dde").Cells(6, 2)
HH = Worksheets("dde").Cells(3, 2)
MP_Tr = Worksheets("dde").Cells(2, 2)

' логика
If MP_Tr.Value = 1 And LastPr.Value > HH.Value + pips.Value Then
HH.Value = Int(LastPr.Value / Correct.Value) * Correct.Value
End If

почему так не работает и что надо сделать чтобы так примерно писать? без ссылок на ячейки и без постоянных пере присваиваний?
budmit вне форума Ответить с цитированием
Старый 20.06.2011, 12:58   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

budmit, Вы читать умеете? Я писал о файле с макросом, а не о кусках кода. Касательно кусков. Переменным типа range значения присваиваются так:
Код:
Set Сorrect = Worksheets("dde").Cells(8, 2)
И далее по списку.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 20.06.2011, 13:20   #5
budmit
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 10
По умолчанию спс все пошло :)

ох и тон у Вас
budmit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как упростить программу по спискам? Сделать код наиболее простым и понятным без всяких наворотов datileo Visual C++ 2 09.06.2011 22:20
Как скопировать формулу чтобы не изменились значения в ячейках _Alias_ Microsoft Office Excel 1 08.02.2011 17:22
Как увеличить значения в ячейках на 1000?? m_v_v Microsoft Office Excel 5 27.05.2010 14:16
как упростить код, используя только массивы, циклы, разветвления и указатели? laxe Общие вопросы C/C++ 22 01.09.2009 09:16
В ячейках есть x=1 x=2 Как убрать x= и оставить только значения Володя Минск Microsoft Office Excel 2 27.10.2008 20:54