Очистка ячеек и UNDO
koyaanisqatsi
Дата: Четверг, 29.12.2016, 15:28 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
Здравствуйте. Хочу прилепить кнопку которая бы очищала ячейки от данных. Но в таком случае мне нежна опция UNDO вернуть все назад если результат не понравился. По записи макроса получилось вот так: [vba]Код
Sub Макрос1() ' ' Макрос1 Макрос ' ' Сочетание клавиш: Ctrl+l ' Range("D7:D28").Select Selection.ClearContents End Sub
[/vba] Undo записать никак не получается (
Здравствуйте. Хочу прилепить кнопку которая бы очищала ячейки от данных. Но в таком случае мне нежна опция UNDO вернуть все назад если результат не понравился. По записи макроса получилось вот так: [vba]Код
Sub Макрос1() ' ' Макрос1 Макрос ' ' Сочетание клавиш: Ctrl+l ' Range("D7:D28").Select Selection.ClearContents End Sub
[/vba] Undo записать никак не получается ( koyaanisqatsi
Ответить
Сообщение Здравствуйте. Хочу прилепить кнопку которая бы очищала ячейки от данных. Но в таком случае мне нежна опция UNDO вернуть все назад если результат не понравился. По записи макроса получилось вот так: [vba]Код
Sub Макрос1() ' ' Макрос1 Макрос ' ' Сочетание клавиш: Ctrl+l ' Range("D7:D28").Select Selection.ClearContents End Sub
[/vba] Undo записать никак не получается ( Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 15:28
nilem
Дата: Четверг, 29.12.2016, 15:38 |
Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
koyaanisqatsi , привет попробуйте вот так: [vba]Код
Option Explicit Dim arr Sub Макрос1() With Range("D7:D28") arr = .Value .ClearContents End With End Sub Sub UnМакрос1() 'типа Undo If IsArray(arr) Then Range("D7:D28").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba]
koyaanisqatsi , привет попробуйте вот так: [vba]Код
Option Explicit Dim arr Sub Макрос1() With Range("D7:D28") arr = .Value .ClearContents End With End Sub Sub UnМакрос1() 'типа Undo If IsArray(arr) Then Range("D7:D28").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba]nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение koyaanisqatsi , привет попробуйте вот так: [vba]Код
Option Explicit Dim arr Sub Макрос1() With Range("D7:D28") arr = .Value .ClearContents End With End Sub Sub UnМакрос1() 'типа Undo If IsArray(arr) Then Range("D7:D28").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba]Автор - nilem Дата добавления - 29.12.2016 в 15:38
koyaanisqatsi
Дата: Четверг, 29.12.2016, 15:54 |
Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
nilem, Спасибо. работает. Жаль только это два макроса. Но можно и так конечно если в один не пихнуть.
nilem, Спасибо. работает. Жаль только это два макроса. Но можно и так конечно если в один не пихнуть. koyaanisqatsi
Ответить
Сообщение nilem, Спасибо. работает. Жаль только это два макроса. Но можно и так конечно если в один не пихнуть. Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 15:54
koyaanisqatsi
Дата: Четверг, 29.12.2016, 16:45 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
nilem, Когда пытаюсь размножить то один то другой зависает на этой строке [vba]Код
Sub UnМакрос2() 'типа Undo
[/vba]
nilem, Когда пытаюсь размножить то один то другой зависает на этой строке [vba]Код
Sub UnМакрос2() 'типа Undo
[/vba] koyaanisqatsi
Сообщение отредактировал koyaanisqatsi - Четверг, 29.12.2016, 16:45
Ответить
Сообщение nilem, Когда пытаюсь размножить то один то другой зависает на этой строке [vba]Код
Sub UnМакрос2() 'типа Undo
[/vba] Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 16:45
Kuzmich
Дата: Четверг, 29.12.2016, 17:13 |
Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация:
156
±
Замечаний:
0% ±
Excel 2003
[vba]Код
Option Explicit Dim arr
[/vba] Надо писать только один раз, уберите лишние
[vba]Код
Option Explicit Dim arr
[/vba] Надо писать только один раз, уберите лишние Kuzmich
Ответить
Сообщение [vba]Код
Option Explicit Dim arr
[/vba] Надо писать только один раз, уберите лишние Автор - Kuzmich Дата добавления - 29.12.2016 в 17:13
koyaanisqatsi
Дата: Четверг, 29.12.2016, 17:17 |
Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
Kuzmich, Вот теперь все ок) Спасибо
Ответить
Сообщение Kuzmich, Вот теперь все ок) Спасибо Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 17:17
Kuzmich
Дата: Четверг, 29.12.2016, 17:42 |
Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация:
156
±
Замечаний:
0% ±
Excel 2003
Если удалить один диапазон, а кнопку Undo нажать в другом, то будет ошибка возврата. Я бы использовал в вашем случае три разных массива
Если удалить один диапазон, а кнопку Undo нажать в другом, то будет ошибка возврата. Я бы использовал в вашем случае три разных массиваKuzmich
Ответить
Сообщение Если удалить один диапазон, а кнопку Undo нажать в другом, то будет ошибка возврата. Я бы использовал в вашем случае три разных массиваАвтор - Kuzmich Дата добавления - 29.12.2016 в 17:42
koyaanisqatsi
Дата: Четверг, 29.12.2016, 17:43 |
Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
Однако, Если таких столбцов много. И случайно нажел вернуть тот столбец который не удалял этим макросом то с этот столбец скопируется тот который удалял макросом ( Нежелательный эффект (((
Однако, Если таких столбцов много. И случайно нажел вернуть тот столбец который не удалял этим макросом то с этот столбец скопируется тот который удалял макросом ( Нежелательный эффект ((( koyaanisqatsi
Ответить
Сообщение Однако, Если таких столбцов много. И случайно нажел вернуть тот столбец который не удалял этим макросом то с этот столбец скопируется тот который удалял макросом ( Нежелательный эффект ((( Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 17:43
Kuzmich
Дата: Четверг, 29.12.2016, 17:46 |
Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация:
156
±
Замечаний:
0% ±
Excel 2003
Цитата
Нежелательный эффект
Попробуйте три массива, измените в макросах циферки у arr [vba]Код
Option Explicit Dim arr Dim arr1 Dim arr2
[/vba]
Цитата
Нежелательный эффект
Попробуйте три массива, измените в макросах циферки у arr [vba]Код
Option Explicit Dim arr Dim arr1 Dim arr2
[/vba]Kuzmich
Ответить
Сообщение Цитата
Нежелательный эффект
Попробуйте три массива, измените в макросах циферки у arr [vba]Код
Option Explicit Dim arr Dim arr1 Dim arr2
[/vba]Автор - Kuzmich Дата добавления - 29.12.2016 в 17:46
koyaanisqatsi
Дата: Четверг, 29.12.2016, 17:55 |
Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
Kuzmich, Так мы же все "Димы" только что удалили ( Я попробовал под каждым макросом сначала дописать с разными цыферками ошибка как и изначально при клонировании Добавил как вы показали в примере после "Option Explicit" Но не помогло (
[vba]
Код
Option Explicit Dim arr Dim arr1 Dim arr2 Dim arr3 Dim arr4 Dim arr5 Sub УдалитьКарт() With Range("D2:D458") arr = .Value .ClearContents End With End Sub Sub вернутьКарт() 'типа Undo If IsArray(arr) Then Range("D2:D458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr1 Sub УдалитьКап() With Range("f2:f458") arr = .Value .ClearContents End With End Sub Sub ВернутьКап() 'типа Undo If IsArray(arr) Then Range("f2:f458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr2 Sub УдалМорк() With Range("g2:g458") arr = .Value .ClearContents End With End Sub Sub ВернМарк() 'типа Undo If IsArray(arr) Then Range("g2:g458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr3 Sub УдалСвекл() With Range("H2:H458") arr = .Value .ClearContents End With End Sub Sub ВернСвекл() 'типа Undo If IsArray(arr) Then Range("H2:H458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr4 Sub УдалЛук() With Range("i2:i458") arr = .Value .ClearContents End With End Sub Sub ВернЛук() 'типа Undo If IsArray(arr) Then Range("i2:i458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr5 Sub УдалРеп() With Range("w2:w458") arr = .Value .ClearContents End With End Sub Sub ВернРеп() 'типа Undo If IsArray(arr) Then Range("w2:w458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba]
Kuzmich, Так мы же все "Димы" только что удалили ( Я попробовал под каждым макросом сначала дописать с разными цыферками ошибка как и изначально при клонировании Добавил как вы показали в примере после "Option Explicit" Но не помогло (
[vba]
Код
Option Explicit Dim arr Dim arr1 Dim arr2 Dim arr3 Dim arr4 Dim arr5 Sub УдалитьКарт() With Range("D2:D458") arr = .Value .ClearContents End With End Sub Sub вернутьКарт() 'типа Undo If IsArray(arr) Then Range("D2:D458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr1 Sub УдалитьКап() With Range("f2:f458") arr = .Value .ClearContents End With End Sub Sub ВернутьКап() 'типа Undo If IsArray(arr) Then Range("f2:f458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr2 Sub УдалМорк() With Range("g2:g458") arr = .Value .ClearContents End With End Sub Sub ВернМарк() 'типа Undo If IsArray(arr) Then Range("g2:g458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr3 Sub УдалСвекл() With Range("H2:H458") arr = .Value .ClearContents End With End Sub Sub ВернСвекл() 'типа Undo If IsArray(arr) Then Range("H2:H458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr4 Sub УдалЛук() With Range("i2:i458") arr = .Value .ClearContents End With End Sub Sub ВернЛук() 'типа Undo If IsArray(arr) Then Range("i2:i458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr5 Sub УдалРеп() With Range("w2:w458") arr = .Value .ClearContents End With End Sub Sub ВернРеп() 'типа Undo If IsArray(arr) Then Range("w2:w458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba]
koyaanisqatsi
Ответить
Сообщение Kuzmich, Так мы же все "Димы" только что удалили ( Я попробовал под каждым макросом сначала дописать с разными цыферками ошибка как и изначально при клонировании Добавил как вы показали в примере после "Option Explicit" Но не помогло (
[vba]
Код
Option Explicit Dim arr Dim arr1 Dim arr2 Dim arr3 Dim arr4 Dim arr5 Sub УдалитьКарт() With Range("D2:D458") arr = .Value .ClearContents End With End Sub Sub вернутьКарт() 'типа Undo If IsArray(arr) Then Range("D2:D458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr1 Sub УдалитьКап() With Range("f2:f458") arr = .Value .ClearContents End With End Sub Sub ВернутьКап() 'типа Undo If IsArray(arr) Then Range("f2:f458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr2 Sub УдалМорк() With Range("g2:g458") arr = .Value .ClearContents End With End Sub Sub ВернМарк() 'типа Undo If IsArray(arr) Then Range("g2:g458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr3 Sub УдалСвекл() With Range("H2:H458") arr = .Value .ClearContents End With End Sub Sub ВернСвекл() 'типа Undo If IsArray(arr) Then Range("H2:H458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr4 Sub УдалЛук() With Range("i2:i458") arr = .Value .ClearContents End With End Sub Sub ВернЛук() 'типа Undo If IsArray(arr) Then Range("i2:i458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Dim arr5 Sub УдалРеп() With Range("w2:w458") arr = .Value .ClearContents End With End Sub Sub ВернРеп() 'типа Undo If IsArray(arr) Then Range("w2:w458").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba]
Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 17:55
Kuzmich
Дата: Четверг, 29.12.2016, 18:03 |
Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация:
156
±
Замечаний:
0% ±
Excel 2003
Я не так имел в виду. [vba]Код
Option Explicit Dim arr Dim arr1 Dim arr2 Sub Макрос1() With Range("D7:D28") arr = .Value .ClearContents End With End Sub Sub UnМакрос1() 'типа Undo If IsArray(arr) Then Range("D7:D28").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Sub Макрос2() With Range("g7:g28") arr1 = .Value .ClearContents End With End Sub Sub UnМакрос2() 'типа Undo If IsArray(arr1) Then Range("g7:g28").Value = arr1 Else MsgBox "Поздняк метаться :)", 64 End If End Sub Sub Макрос3() With Range("i7:i28") arr2 = .Value .ClearContents End With End Sub Sub UnМакрос3() 'типа Undo If IsArray(arr2) Then Range("i7:i28").Value = arr2 Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba]
Я не так имел в виду. [vba]Код
Option Explicit Dim arr Dim arr1 Dim arr2 Sub Макрос1() With Range("D7:D28") arr = .Value .ClearContents End With End Sub Sub UnМакрос1() 'типа Undo If IsArray(arr) Then Range("D7:D28").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Sub Макрос2() With Range("g7:g28") arr1 = .Value .ClearContents End With End Sub Sub UnМакрос2() 'типа Undo If IsArray(arr1) Then Range("g7:g28").Value = arr1 Else MsgBox "Поздняк метаться :)", 64 End If End Sub Sub Макрос3() With Range("i7:i28") arr2 = .Value .ClearContents End With End Sub Sub UnМакрос3() 'типа Undo If IsArray(arr2) Then Range("i7:i28").Value = arr2 Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba] Kuzmich
Ответить
Сообщение Я не так имел в виду. [vba]Код
Option Explicit Dim arr Dim arr1 Dim arr2 Sub Макрос1() With Range("D7:D28") arr = .Value .ClearContents End With End Sub Sub UnМакрос1() 'типа Undo If IsArray(arr) Then Range("D7:D28").Value = arr Else MsgBox "Поздняк метаться :)", 64 End If End Sub Sub Макрос2() With Range("g7:g28") arr1 = .Value .ClearContents End With End Sub Sub UnМакрос2() 'типа Undo If IsArray(arr1) Then Range("g7:g28").Value = arr1 Else MsgBox "Поздняк метаться :)", 64 End If End Sub Sub Макрос3() With Range("i7:i28") arr2 = .Value .ClearContents End With End Sub Sub UnМакрос3() 'типа Undo If IsArray(arr2) Then Range("i7:i28").Value = arr2 Else MsgBox "Поздняк метаться :)", 64 End If End Sub
[/vba] Автор - Kuzmich Дата добавления - 29.12.2016 в 18:03
koyaanisqatsi
Дата: Четверг, 29.12.2016, 18:08 |
Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
Kuzmich, А так все равно этот негативный эффект остается (
Kuzmich, А так все равно этот негативный эффект остается ( koyaanisqatsi
Ответить
Сообщение Kuzmich, А так все равно этот негативный эффект остается ( Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 18:08
Kuzmich
Дата: Четверг, 29.12.2016, 18:16 |
Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация:
156
±
Замечаний:
0% ±
Excel 2003
Цитата
негативный эффект остается
А, если перезагрузить файл ?
Цитата
негативный эффект остается
А, если перезагрузить файл ?Kuzmich
Ответить
Сообщение Цитата
негативный эффект остается
А, если перезагрузить файл ?Автор - Kuzmich Дата добавления - 29.12.2016 в 18:16
koyaanisqatsi
Дата: Четверг, 29.12.2016, 18:20 |
Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
Kuzmich, Не помогло (
Ответить
Сообщение Kuzmich, Не помогло ( Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 18:20
Kuzmich
Дата: Четверг, 29.12.2016, 18:32 |
Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация:
156
±
Замечаний:
0% ±
Excel 2003
Посмотрите в файле
К сообщению приложен файл:
Undo.xls
(51.0 Kb)
Ответить
Сообщение Посмотрите в файле Автор - Kuzmich Дата добавления - 29.12.2016 в 18:32
koyaanisqatsi
Дата: Четверг, 29.12.2016, 18:36 |
Сообщение № 16
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
15
±
Замечаний:
0% ±
Excel 2010
Kuzmich, Семен Семеныч )))) Ну да АРР я и не заметил (во втором случае) ТАДАМ ! Спасибо огромное )
Kuzmich, Семен Семеныч )))) Ну да АРР я и не заметил (во втором случае) ТАДАМ ! Спасибо огромное ) koyaanisqatsi
Ответить
Сообщение Kuzmich, Семен Семеныч )))) Ну да АРР я и не заметил (во втором случае) ТАДАМ ! Спасибо огромное ) Автор - koyaanisqatsi Дата добавления - 29.12.2016 в 18:36