Страницы: 1
RSS
Запомнить значение, которое было в ячейке до удаления
 
Ячейка очищается от данных пользователем (выделил ячейку и нажал Del). Запускается обработка события Worksheet_Change и в этом макросе мне нужно присвоить переменной значение, которое было в ячейке до удаления. Я никак не могу найти окуда можно считать эти данные. То, что эти данные где-то сохраняются это точно, ведь если я отменяю удаление, то данные возвращаются. Но как их извлечь программно?
 
Запоминайте значение в переменную уровня модуля по событию Worksheet_SelectionChange
Согласие есть продукт при полном непротивлении сторон
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vOldVal, vNewVal
    vNewVal = Target.Value 'новое значение
    With Application
        .EnableEvents = 0
        .Undo
        vOldVal = Target.Value 'старое значение(до нажатия Del)
        'возвращаем значение, назначенное пользователем(по сути пусто, т.к. нажали Del)
        Target.Value = vNewVal
        .EnableEvents = 1
    End With
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо за подсказки. Я попробую оба решения, но пока мне больше по душе второе.
Хотя я был уверен, что можно считать готовые данные из буфера для отмены.
 
А каким образом эти данные могли оказаться в буфере? )
 
Ну где-то же они есть пока доступна отмена!
 
Если Вы полагаете, что они в буфере обмена, нажмите Ctrl+V - получится вставка?  :)
Данные хранятся в недрах Excel
Почитайте эту статью
 
Почитал. Это всё конечно интересно, но немного не то. Я имел ввиду типо бла.бла.бла.previousvalue = "что-то", которое можно считать одним движением.
В принципе я всё понял, думаю дальше нет смысла обсуждать. Думаю тему можно закрыть.
Страницы: 1
Наверх