|
vba excel Как получить старое значение ячеек до изменения
|
|||
---|---|---|---|
#18+
Вот исходник для ведения лога Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93.
Тут все изменения на листах записываются на лист ЛОГ. Проблема состоит в следующем. Если изменяется одна ячейка, то все работает хорошо. Но если изменяется сразу несколько ячеек, то работает не всегда корректно. Если пользователь сначала выделяет диапазон, а потом жмет ctrl+v - все работает хорошо, но вот если он выделит одну ячейку и нажмет ctrl+v, и вставит сразу несколько ячеек из буфера, то в ЛОГ запишутся значения которые он вставит, а не которые были в этих ячейках до этого. Можно как-то это обойти?? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 12:19 |
|
vba excel Как получить старое значение ячеек до изменения
|
|||
---|---|---|---|
#18+
vuler, Как вариант использовать метод .Undo. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
С форматами, правда, беда будет. Но значения все можно запомнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 14:07 |
|
vba excel Как получить старое значение ячеек до изменения
|
|||
---|---|---|---|
#18+
Честно говоря, не вижу смысла в вопросе. Вы хотите логировать то, что было в ячейках и до, и после изменения? А зачем? То, что было ДО - находится из анализа вашего же лога (если есть бэкап исходника и лог "акций" - то получить состояние можно на любой момент). Но, в принципе... В коде Change нет запоминания значения при Target.Count=1 , т.е. как раз при выборе одной ячейки. Вот поэтому у вас выбор нескольких ячеек - запоминает старые значения, а выбор одной - нет. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 14:29 |
|
vba excel Как получить старое значение ячеек до изменения
|
|||
---|---|---|---|
#18+
AndreTM, Не в этом дело. Имеется ввиду, что выделение одной как раз запоминается. Но когда выделили одну и сделали вставку нескольких ячеек - то запомнилась лишь одна ячейка старого значения, в то время как новых ячеек может быть больше - сколько скопировали, столько вставится. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 14:39 |
|
vba excel Как получить старое значение ячеек до изменения
|
|||
---|---|---|---|
#18+
А, если так - то да... Но я всё же за то, что старые значения вообще не надо запоминать ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 15:13 |
|
vba excel Как получить старое значение ячеек до изменения
|
|||
---|---|---|---|
#18+
AndreTM, Я не совсем согласен, но...Я за такой подход, что изменения отслеживать перед закрытием книги с сохранением. Перед открытием делать копию листа/книги, а перед закрытием сверять, какие значения были изменены. И для расходования ресурсов оптимально и значения реально измененные только отследит без лишнего хлама. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 16:14 |
|
vba excel Как получить старое значение ячеек до изменения
|
|||
---|---|---|---|
#18+
Ну, я немного неправильно выразился. Нн надо запоминать "старые значения изменяемых ячеек ". Т.е. стандартный транзакционный подход: имеется полная копия (бэкап) книги, по состоянию на некоторый момент, и имеется лог действий, произведенных над книгой, начиная с этого момента. И этого достаточно... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 18:02 |
|
|
start [/forum/topic.php?fid=61&fpage=52&tid=2173763]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 406ms |
0 / 0 |