Страница: 1 | 2 |
Вопрос: Как сохранить значение переменной?
Добавлено: 13.03.08 18:42
Автор вопроса: Зеленый
Как сделать чтобы значение переменной из процедуры в процедуру не терялось. В смысле вот так: пользователь записал число в ячейку. В Private Sub Worksheet_Change() я считал ячейку и присвоил в переменную q. В декларашене Public q as integer. Потом через некоторое время, не закрывая окна, пользователь допустим опять поменял значение в той ячейке. И в Private Sub Worksheet_Change() опять считывается значение. Так вот как сравнить ту старую q с новым значением ячейки. При этом я не юзаю контрлов и в ячейку какую-нибудь тоже не надо записывать q. Т.е. как сохранить в памяти q во времени, пока открыто таблица.
Ответы
Всего ответов: 21
Номер ответа: 1
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #1
Добавлено: 13.03.08 18:53
____ А почему нельзя сравнивать прямо в Private Sub Worksheet_Change()? Пока она не записана в q.
Номер ответа: 2
Автор ответа:
Зеленый
Вопросов: 7
Ответов: 13
Профиль | | #2
Добавлено: 13.03.08 19:06
Она там и должна сравниваться. Потом в зависимости от старого и нового значения делаются изменения на листе. И только потом новое значение ячейки присваивается q. И это q уже будет старым в следующий раз, когда пользователь вновь внесет изменения. Но когда процедура начинается q уже пустой, а присвоенное значение теряется и получается что нет старого значения q, а только пользовательская ячейка. Надеюсь понятно объяснил. Если что вот
Public q as integer
Private Sub Worksheet_Change()
if q>cells(3.3) then то-то else то-то
q=cells(3.3)
end sub
Номер ответа: 3
Автор ответа:
Зеленый
Вопросов: 7
Ответов: 13
Профиль | | #3
Добавлено: 13.03.08 19:09
ну т.е. не cells(3.3), а Worksheet("Лист1".cells(3,3).value
Номер ответа: 4
Автор ответа:
Зеленый
Вопросов: 7
Ответов: 13
Профиль | | #4
Добавлено: 13.03.08 19:49
Все работает. Excel попеременно тупит при отладке. После ошибок иногда не воспринимает изменения. Sorry за тупой вопрос.
Номер ответа: 5
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #5
Добавлено: 13.03.08 20:20
____ Всё правильно. Надо после некоторых изменений в коде надо сохранять файл и снова его перезапускать.
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 14.03.08 16:33
избавится от глобальной переменной можно так:
Private Sub Worksheet_Change()
static q as integerif q>cells(3.3) then то-то else то-то
q=cells(3.3)
end sub
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 15.03.08 00:35
2 ADSemenov.ru
Нафига ты столько черточек рисуешь? И так ведь понятно что написано!
Номер ответа: 8
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #8
Добавлено: 15.03.08 00:49
____ Дурная привычка — никак не могу избавиться. А есть способ 4-5 пробелов зафигачить перед абзацем?
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 15.03.08 00:54
?
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 15.03.08 00:56
а не, фильтрует ) Ну тогда можно вспомнить в каких случаях следует писать с абзаца, а в каких нет
Номер ответа: 11
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #11
Добавлено: 15.03.08 08:50
Способ, может быть, и есть. Но очень сильно напрягает. Иногда использую на других форумах, где меня за эти "чёрточки" "приговаривают" к предупреждению с формулировкой "за форматирование абзацев" (таких форумов из полуторы сотен нашлась парочка).
Так что, прям и не знаю, что делать — пальцы так и лезут в эти "чёрточки".
Номер ответа: 12
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #12
Добавлено: 15.03.08 17:38
Абзацы можно разделять пустой строкой. За это у нас еще не расстреливают.
Номер ответа: 13
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #13
Добавлено: 15.03.08 18:21
Разговор идёт не об отделении абзацев друг от друга, а об оформлении абзаца. В терминах CSS это соответствует text-indent. Мне нравится оформлять текст, как это принято в художественной литературе.
Но стандарт HTML в большинстве браузеров не "пропускает" подряд идущие пробелы и преобразует их в один. Можно это обойти, как я это сделал сейчас, но проще "настукать" несколько "чёрточек".
Номер ответа: 14
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #14
Добавлено: 15.03.08 18:30
Отступы в абзацах делаются, чтобы визуально отделить конец одного
абзаца от начала другого.
А черточки - это очень убого смотрится.
Номер ответа: 15
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #15
Добавлено: 15.03.08 19:05
2 ADSemenov.ru
Почитай Лебедева - в интернете использование text-indent является плохим вкусом, а уже тем более text-indent вместе с отступом между абзацами - вообще моветон