Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пустячок, но очень надо! Маленькое действо в Excel 
:(
    Опции темы
Shellcom
Дата 22.4.2004, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.4.2004

Репутация: нет
Всего: нет



Звиняйте за возможно неинтересный вопрос, просто негде узнать.

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

sad.gif sad.gif sad.gif
PM MAIL   Вверх
Guest
Дата 22.4.2004, 13:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код
Application.Undo

  Вверх
Shellcom
Дата 23.4.2004, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.4.2004

Репутация: нет
Всего: нет



Она вечная!!!
А чтобы только раз???
PM MAIL   Вверх
Guest
Дата 23.4.2004, 11:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так она и отменяет только последнее действие (причем даже свое withstupid.gif )
  Вверх
Гость_Shellcom
Дата 26.4.2004, 13:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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

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 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну думать же надо.......
Если в 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 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.4.2004

Репутация: нет
Всего: нет



Не работает, извиняюсь.
Если в выбранной ячейке что-то было, это не возвращается при изменении. bored.gif
PM MAIL   Вверх
Guest
Дата 27.4.2004, 08:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Хм......
Ну не знаю, у меня все работает!!!!
Странно........
Последовательность опиши
  Вверх
Shellcom
Дата 27.4.2004, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.4.2004

Репутация: нет
Всего: нет



Не, пардон, проверил - работает.

Что текст делает понял,
а почему цикл так много работает?
По идее достаточно была одного раза?
PM MAIL   Вверх
Guest
Дата 27.4.2004, 11:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Если ты про Application.Undo то цикл повтаряется до токго момента пока не кончиться стек. Возникает эксепшн, обработчик прерывает операцию и опустошает стек, не вызывая подозрений wink.gif .
А если ты про код, то он не имеет никакого цикла в принципе
  Вверх
Shellcom
Дата 27.4.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.4.2004

Репутация: нет
Всего: нет



Дык понятно...
Желаемое то получил, напрягли только лишние програмные телодвижения... bored.gif
А за беспокойство спасибо. Трудно быть чайником, тут хоть с глупым вопросом помогут.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.