|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
Добрый день, когда срабатывает событие Worksheet_Change в интересующей ячейке уже записано новое значение. Как мне узнать старое значение? Сейчас я для этого использую еще одну ячейку, в которой хранится старое значение, до тех пор, пока я его не использую и не заменю новым в Worksheet_Change. Что-то мне подсказывает, что есть более цивилизованные способы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 13:49 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
Вот еще. нашел метод DiscardChanges класса Range, хотел попробовать с ним придумать что-то, но при первом же тесте он ругается. Код: vbnet 1. 2. 3. 4. 5. 6. 7.
в общем идея умерла не родившись :) подскажите какие есть варианты для решения такой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 13:52 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
SEYD, когда срабатывает событие Worksheet_Change в интересующей ячейке - а после чего оно срабатывает? Модератор: Эндрю, если тебя интересует какая-то функция, прочитай по ней хелп, не надо встречные вопросы задавать автору, который сам пришел с вопросом, и превращать его топик в помойку. Предупреждение (в этом сезоне обострения) первое и последнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 13:58 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
катастрофаSEYD, когда срабатывает событие Worksheet_Change в интересующей ячейке - а после чего оно срабатывает? после любого изменения на странице, в том числе и в заданной ячейке. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 14:08 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
Кстати, уточняю, это все происходит в экселе 2010. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 14:13 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
SEYD, Может наведет на мысли: Ведение журнала сделанных в книге изменений А в принципе не совсем понял: необходимо отследить изменения только в А1 или еще в каких-то? Как реагировать, если было произведено копирование-вставка диапазона ячеек разом, среди которых и А1? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 16:06 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
The_PristSEYD, Может наведет на мысли: Ведение журнала сделанных в книге изменений за ссылку спасибо, почитаю что там. The_PristА в принципе не совсем понял: необходимо отследить изменения только в А1 или еще в каких-то? А1 это был просто тест. А отслеживать нужно изменения в нескольких столбцах нескольких таблиц на странице, причем число строк в этих таблицах может меняться по ходу работы. The_PristКак реагировать, если было произведено копирование-вставка диапазона ячеек разом, среди которых и А1? если разом изменен диапазон, в который входят и отслеживаемые и неотслеживаемые ячейки, то нужно отследить отслеживаемые, а остальные нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 16:15 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
SEYD, тогда по сути код по ссылке должен помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 16:43 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
SEYDнашел метод DiscardChanges класса Range Используйте Application.Undo ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2014, 18:59 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
The_PristSEYD, тогда по сути код по ссылке должен помочь. Поможет, но это не самое эффективное решение - не очень хорошая идея лазить по этому журналу и искать какое же там было последнее значение в определенной ячейке. КазанскийИспользуйте Application.Undo не совсем то, Application.Undo отменит все изменения, а я хотел отменять изменения в заданном Range... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2014, 18:01 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
сделали бы в Майкрософте событие worksheet_change, которое вызывается до изменения и принимает параметр, который говорит применять ли эти изменения или нет - было бы все гуд, а так приходится костыли строгать.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2014, 18:04 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
SEYD, Сделали уже такой иструмент - защита листа называется. Надо изменять - изменяйте. Не надо - только по вводу пароля. Еще есть проверка данных. А то, на что жалуетесь Вы - это как минимум бред, т.к. если начали вводить значение - надо полагать, что хотели его ввести и переспрашивать: "Вы действительно хотите внести изменение?" - это уже слишком. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2014, 18:58 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
The_PristSEYD, Сделали уже такой иструмент - защита листа называется. Надо изменять - изменяйте. Не надо - только по вводу пароля. Еще есть проверка данных. А то, на что жалуетесь Вы - это как минимум бред, т.к. если начали вводить значение - надо полагать, что хотели его ввести и переспрашивать: "Вы действительно хотите внести изменение?" - это уже слишком. Вы о чем? Прочитайте самый первый мой пост. Там сказано, что мне нужно узнать какое значение было до изменения. Никакой речи о запрете ввода или о переспрашивании. А предыдущее значение мне нужно для определенных вычислений. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 17:43 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
SEYD, SEYDТам сказано, что мне нужно узнать какое значение было до изменения. А в следующих постах сказано, как его получить. SEYDНикакой речи о запрете ввода или о переспрашивании. принимает параметр, который говорит применять ли эти изменения или нетА как Вы этот параметр себе представляете? Есть Undo - пожалуйста, пользуйте. Не нравится введенное значение - отмените. В чем проблема-то? Как такового в том виде(а-ля ApplyChanges) такого параметра нет даже штатного(не считая Проверку данных) - откуда он возьмется в VBA? На самом деле все это просто Ваше нежелание читать ответы и попробовать, что пишут, если честно: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
SEYDApplication.Undo отменит все изменения, а я хотел отменять изменения в заданном RangeДля этого и дал ссылку: чтобы посмотрели как можно записать все изменения. Хотя бы принцип. Запомнить значения в измененном диапазоне и отменить только те, что надо отменить. Остальные просто после применения .Undo записать(как в примере выше). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 18:52 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
The_PristА как Вы этот параметр себе представляете? Я его вижу ровно так, как он существует в любом ООП языке. Применительно к VBA в виде события типа WorkSheet_BeforeChange(ApplyChanges). В теле события нужно выставить ApplyChanges в True или False. The_Pristоткуда он возьмется в VBA? Ниоткуда, это просто рассуждение о том, как есть много где и как могло бы быть в VBA :) The_PristЕсть Undo - пожалуйста, пользуйте. Не нравится введенное значение - отмените. Undo решает только половину проблемы - изменение данных пользователем. А если данные изменяются из VBA, то, увы, он не работает. Но все равно Вам спасибо за участие! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 10:42 |
|
Определение значения ячейки до изменения в событии Worksheet_Change
|
|||
---|---|---|---|
#18+
SEYDА если данные изменяются из VBA, то, увы, он не работает.А кто инициирует это изменение из VBA? Правильно, Вы сами своим кодом. Вот в коде и надо самому отслеживать, что вносите в ячейки и перед этим запоминать прежнее значение. Иными словами пересмотреть логику своего кода. Да, муторно. Но что делать. Это вообще не проблема, как раз, т.к. эти проблемные для Вас изменения Вы вносите сами. И проблема перестает быть таковой, т.к. Вы хотя бы заранее знаете, что изменяете, где и когда. P.S. Что по мне, так тот параметр, которого Вам так не хватает там и не нужен. Есть иные средства, чтобы решить данный вопрос. Притом, что не так уж часто такая потребность вообще возникает. А воткнуть все желания каждого в одно приложение просто нереально. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 11:35 |
|
|
start [/forum/topic.php?fid=61&msg=38614455&tid=2174095]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 160ms |
0 / 0 |