Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Пустячок, но очень надо!


Автор: Shellcom 22.4.2004, 11:46
Звиняйте за возможно неинтересный вопрос, просто негде узнать.

В экселе есть кнопочка такая - отмена действия.
А как на VB это перевести?

sad.gif sad.gif sad.gif

Автор: Guest 22.4.2004, 13:00
Код
Application.Undo

Автор: Shellcom 23.4.2004, 10:43
Она вечная!!!
А чтобы только раз???

Автор: Guest 23.4.2004, 11:49
Так она и отменяет только последнее действие (причем даже свое withstupid.gif )

Автор: Гость_Shellcom 26.4.2004, 13:13
Дык это я заметил, надо-то только последнее.
Вот кодик небольшой, так она тут перпетум мобиле делает, а хорошо бы последнее действо!

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
r = Target.Row
c = Target.Column
If c = 2 Then
LebelNaim = Worksheets("Лист1").Cells(r, c)
Application.Undo
Else
End If
End Sub

Автор: Guest 26.4.2004, 14:06
Ну думать же надо.......
Если в Worksheet_Change воткнуть Application.Undo, то процедура будет вызывать сама себя до бесконечности или пока не произойдет что нить кртическое.
Используй либо другое событие, либо не Undo
Например так

Код

Dim Temp As Variant

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
r = Target.Row
c = Target.Column

If c = 2 Then
 Worksheets("Лист1").Cells(r, c) = Temp
Else
End If

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
r = Target.Row
c = Target.Column
 Temp = Worksheets("Лист1").Cells(r, c)
End Sub

Хотя тож не очень хорошо, но это хоть работает baaa.gif

Автор: Shellcom 26.4.2004, 19:21
Не работает, извиняюсь.
Если в выбранной ячейке что-то было, это не возвращается при изменении. bored.gif

Автор: Guest 27.4.2004, 08:47
Хм......
Ну не знаю, у меня все работает!!!!
Странно........
Последовательность опиши

Автор: Shellcom 27.4.2004, 11:05
Не, пардон, проверил - работает.

Что текст делает понял,
а почему цикл так много работает?
По идее достаточно была одного раза?

Автор: Guest 27.4.2004, 11:54
Если ты про Application.Undo то цикл повтаряется до токго момента пока не кончиться стек. Возникает эксепшн, обработчик прерывает операцию и опустошает стек, не вызывая подозрений wink.gif .
А если ты про код, то он не имеет никакого цикла в принципе

Автор: Shellcom 27.4.2004, 13:09
Дык понятно...
Желаемое то получил, напрягли только лишние програмные телодвижения... bored.gif
А за беспокойство спасибо. Трудно быть чайником, тут хоть с глупым вопросом помогут.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)