Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как сделать так, чтобы одна кнопка выполняла два действия? - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как сделать так, чтобы одна кнопка выполняла два действия? (Макросы/Sub)
Как сделать так, чтобы одна кнопка выполняла два действия?
Фомулист Дата: Среда, 16.03.2022, 18:02 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 396
Репутация: 9 ±
Замечаний: 80% ±

Excel 2003
Здравствуйте.
Скажите, пожалуйста, как сделать так, чтобы при одном нажатии кнопки ячейке A2 присваивался текстовый формат, при втором это присвоение отменялось? Причём код на задание формата я даже на этом форуме видел, но не пойму, как сделать на одной кнопке два действия. Помогите, пожалуйста.


Терпение и труд всё перетрут!
 
Ответить
СообщениеЗдравствуйте.
Скажите, пожалуйста, как сделать так, чтобы при одном нажатии кнопки ячейке A2 присваивался текстовый формат, при втором это присвоение отменялось? Причём код на задание формата я даже на этом форуме видел, но не пойму, как сделать на одной кнопке два действия. Помогите, пожалуйста.

Автор - Фомулист
Дата добавления - 16.03.2022 в 18:02
RAN Дата: Среда, 16.03.2022, 18:48 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата Фомулист, 16.03.2022 в 18:02, в сообщении № 1 ()
как сделать на одной кнопке два действия

Использовать If (Если).


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата Фомулист, 16.03.2022 в 18:02, в сообщении № 1 ()
как сделать на одной кнопке два действия

Использовать If (Если).

Автор - RAN
Дата добавления - 16.03.2022 в 18:48
Фомулист Дата: Среда, 16.03.2022, 19:49 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 396
Репутация: 9 ±
Замечаний: 80% ±

Excel 2003
Использовать If (Если).

Как использовать? Надо: нажали - Ячейке A2 присвоился формат Текстовый; нажали снова - произошла отмена присвоения ячейке A2 текстового формата. Как реализовать?


Терпение и труд всё перетрут!
 
Ответить
Сообщение
Использовать If (Если).

Как использовать? Надо: нажали - Ячейке A2 присвоился формат Текстовый; нажали снова - произошла отмена присвоения ячейке A2 текстового формата. Как реализовать?

Автор - Фомулист
Дата добавления - 16.03.2022 в 19:49
bmv98rus Дата: Среда, 16.03.2022, 22:57 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Фомулист, тригер имеет два состояния и перед переключеним производится оценка состояния и изменени й его на противоположное. Соотвтевенно смотрит на состояние того что нужно менять на противоположное и меняйте.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеФомулист, тригер имеет два состояния и перед переключеним производится оценка состояния и изменени й его на противоположное. Соотвтевенно смотрит на состояние того что нужно менять на противоположное и меняйте.

Автор - bmv98rus
Дата добавления - 16.03.2022 в 22:57
pechkin Дата: Четверг, 17.03.2022, 08:14 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравствуйте! Подходит?
К сообщению приложен файл: 6827979.xls (36.0 Kb)
 
Ответить
СообщениеЗдравствуйте! Подходит?

Автор - pechkin
Дата добавления - 17.03.2022 в 08:14
Фомулист Дата: Четверг, 17.03.2022, 13:08 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 396
Репутация: 9 ±
Замечаний: 80% ±

Excel 2003
Подходит?

В Вашем файле - всё супер! НО когда я скопировал макрос и кнопку в свой файл, то при запуске получаю ошибку "Невозможно получить свойство DrawongObjects класса Worksheet Файл свой прилагаю. Помогите, пожалуйста преодолеть эту ошибку.
К сообщению приложен файл: 3699578.png (114.4 Kb) · 6800339.xls (44.0 Kb)


Терпение и труд всё перетрут!
 
Ответить
Сообщение
Подходит?

В Вашем файле - всё супер! НО когда я скопировал макрос и кнопку в свой файл, то при запуске получаю ошибку "Невозможно получить свойство DrawongObjects класса Worksheet Файл свой прилагаю. Помогите, пожалуйста преодолеть эту ошибку.

Автор - Фомулист
Дата добавления - 17.03.2022 в 13:08
китин Дата: Четверг, 17.03.2022, 13:14 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
у вас в файле кнопка 3, а в макросе кнопка 1. вот он и не находит
К сообщению приложен файл: 9919465.xls (43.0 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеу вас в файле кнопка 3, а в макросе кнопка 1. вот он и не находит

Автор - китин
Дата добавления - 17.03.2022 в 13:14
Фомулист Дата: Четверг, 17.03.2022, 13:30 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 396
Репутация: 9 ±
Замечаний: 80% ±

Excel 2003
Большое спасибо.
у вас в файле кнопка 3, а в макросе кнопка 1

Скажите, пожалуйста, а как можно в файле посмотреть номер кнопки?


Терпение и труд всё перетрут!
 
Ответить
СообщениеБольшое спасибо.
у вас в файле кнопка 3, а в макросе кнопка 1

Скажите, пожалуйста, а как можно в файле посмотреть номер кнопки?

Автор - Фомулист
Дата добавления - 17.03.2022 в 13:30
китин Дата: Четверг, 17.03.2022, 14:44 | Сообщение № 9
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
в макросе "Button 1" это кнопка под номером 1


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениев макросе "Button 1" это кнопка под номером 1

Автор - китин
Дата добавления - 17.03.2022 в 14:44
Фомулист Дата: Четверг, 17.03.2022, 14:48 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 396
Репутация: 9 ±
Замечаний: 80% ±

Excel 2003
китин, В макросе я знаю. А как посмотреть номер кнопки, которая в моём файле? Иными словами, как Вы увидели, что у меня в файле кнопка 3?


Терпение и труд всё перетрут!
 
Ответить
Сообщениекитин, В макросе я знаю. А как посмотреть номер кнопки, которая в моём файле? Иными словами, как Вы увидели, что у меня в файле кнопка 3?

Автор - Фомулист
Дата добавления - 17.03.2022 в 14:48
китин Дата: Четверг, 17.03.2022, 14:55 | Сообщение № 11
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
ПКМ по кнопке
К сообщению приложен файл: 5926540.jpg (22.1 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеПКМ по кнопке

Автор - китин
Дата добавления - 17.03.2022 в 14:55
RAN Дата: Четверг, 17.03.2022, 14:55 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
%)


[vba]
Код
Sub Формат()
    Dim a&, apCall$
    
    a = InputBox("Укажите количество ячеек." & vbLf & _
                 "Например 20", "Сколько ячеек форматировать?")

    apCall = Application.Caller
    With Sheets("Лист1")
        If .DrawingObjects(apCall).Caption = "Перейти в текстовый формат" Then
            .DrawingObjects(apCall).Caption = "Отменить текстовый формат"
            .DrawingObjects(apCall).Font.ColorIndex = 5
            .Range("A38").Resize(a).NumberFormat = "@"
        Else
            .DrawingObjects(apCall).Caption = "Перейти в текстовый формат"
            .DrawingObjects(apCall).Font.ColorIndex = 3
            .Range("A38").Resize(a).NumberFormat = "General"
        End If
    End With

End Sub
[/vba]
К сообщению приложен файл: 4039067.jpg (18.0 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Четверг, 17.03.2022, 14:59
 
Ответить
Сообщение%)


[vba]
Код
Sub Формат()
    Dim a&, apCall$
    
    a = InputBox("Укажите количество ячеек." & vbLf & _
                 "Например 20", "Сколько ячеек форматировать?")

    apCall = Application.Caller
    With Sheets("Лист1")
        If .DrawingObjects(apCall).Caption = "Перейти в текстовый формат" Then
            .DrawingObjects(apCall).Caption = "Отменить текстовый формат"
            .DrawingObjects(apCall).Font.ColorIndex = 5
            .Range("A38").Resize(a).NumberFormat = "@"
        Else
            .DrawingObjects(apCall).Caption = "Перейти в текстовый формат"
            .DrawingObjects(apCall).Font.ColorIndex = 3
            .Range("A38").Resize(a).NumberFormat = "General"
        End If
    End With

End Sub
[/vba]

Автор - RAN
Дата добавления - 17.03.2022 в 14:55
Фомулист Дата: Четверг, 17.03.2022, 16:27 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 396
Репутация: 9 ±
Замечаний: 80% ±

Excel 2003
Всем большое спасибо.


Терпение и труд всё перетрут!
 
Ответить
СообщениеВсем большое спасибо.

Автор - Фомулист
Дата добавления - 17.03.2022 в 16:27
Gevox Дата: Среда, 10.01.2024, 11:21 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, подскажите дилетанту. Создал первый макрос на скрытие столбцов, второй макрос на раскрытие столбцов. Теперь ломаю голову как из этого сделать 1 макрос, что бы по нажатию кнопки скрывал , по второму нажатию закрывал.
Sub Кнопка1_Скрытьстолбцы()
Columns(3).Hidden = True
Columns(7).Hidden = True
Columns(11).Hidden = True
Columns(17).Hidden = True
Columns(21).Hidden = True
Columns(25).Hidden = True
Columns(29).Hidden = True
Columns(35).Hidden = True
Columns(39).Hidden = True
Columns(43).Hidden = True
Columns(47).Hidden = True
Columns(53).Hidden = True
Columns(57).Hidden = True
Columns(61).Hidden = True
Columns(65).Hidden = True
Columns(71).Hidden = True
Columns(79).Hidden = True
Columns(89).Hidden = True
Columns(93).Hidden = True
Columns(97).Hidden = True
Columns(101).Hidden = True
Columns(107).Hidden = True
Columns(111).Hidden = True
Columns(115).Hidden = True

Sub Кнопка2_Щелчок()
Columns(3).Hidden = False
Columns(7).Hidden = False
Columns(11).Hidden = False
Columns(17).Hidden = False
Columns(21).Hidden = False
Columns(25).Hidden = False
Columns(29).Hidden = False
Columns(35).Hidden = False
Columns(39).Hidden = False
Columns(43).Hidden = False
Columns(47).Hidden = False
Columns(53).Hidden = False
Columns(57).Hidden = False
Columns(61).Hidden = False
Columns(65).Hidden = False
Columns(71).Hidden = False
Columns(79).Hidden = False
Columns(89).Hidden = False
Columns(93).Hidden = False
Columns(97).Hidden = False
Columns(101).Hidden = False
Columns(107).Hidden = False
Columns(111).Hidden = False
Columns(115).Hidden = False
End Sub
 
Ответить
СообщениеДобрый день, подскажите дилетанту. Создал первый макрос на скрытие столбцов, второй макрос на раскрытие столбцов. Теперь ломаю голову как из этого сделать 1 макрос, что бы по нажатию кнопки скрывал , по второму нажатию закрывал.
Sub Кнопка1_Скрытьстолбцы()
Columns(3).Hidden = True
Columns(7).Hidden = True
Columns(11).Hidden = True
Columns(17).Hidden = True
Columns(21).Hidden = True
Columns(25).Hidden = True
Columns(29).Hidden = True
Columns(35).Hidden = True
Columns(39).Hidden = True
Columns(43).Hidden = True
Columns(47).Hidden = True
Columns(53).Hidden = True
Columns(57).Hidden = True
Columns(61).Hidden = True
Columns(65).Hidden = True
Columns(71).Hidden = True
Columns(79).Hidden = True
Columns(89).Hidden = True
Columns(93).Hidden = True
Columns(97).Hidden = True
Columns(101).Hidden = True
Columns(107).Hidden = True
Columns(111).Hidden = True
Columns(115).Hidden = True

Sub Кнопка2_Щелчок()
Columns(3).Hidden = False
Columns(7).Hidden = False
Columns(11).Hidden = False
Columns(17).Hidden = False
Columns(21).Hidden = False
Columns(25).Hidden = False
Columns(29).Hidden = False
Columns(35).Hidden = False
Columns(39).Hidden = False
Columns(43).Hidden = False
Columns(47).Hidden = False
Columns(53).Hidden = False
Columns(57).Hidden = False
Columns(61).Hidden = False
Columns(65).Hidden = False
Columns(71).Hidden = False
Columns(79).Hidden = False
Columns(89).Hidden = False
Columns(93).Hidden = False
Columns(97).Hidden = False
Columns(101).Hidden = False
Columns(107).Hidden = False
Columns(111).Hidden = False
Columns(115).Hidden = False
End Sub

Автор - Gevox
Дата добавления - 10.01.2024 в 11:21
i691198 Дата: Среда, 10.01.2024, 19:40 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 210
Репутация: 84 ±
Замечаний: 0% ±

Gevox, Попробуйте такой вариант.
К сообщению приложен файл: hide_columns.xlsm (17.0 Kb)
 
Ответить
СообщениеGevox, Попробуйте такой вариант.

Автор - i691198
Дата добавления - 10.01.2024 в 19:40
Gustav Дата: Среда, 10.01.2024, 22:09 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2695
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Gevox, я со своей стороны просто покажу, как можно подсократить код при вашем двухкнопочном варианте (чтобы народ не пугать такими листингами):

[vba]
Код
Sub Кнопка1_Скрытьстолбцы()
    hideCols True
End Sub

Sub Кнопка2_Щелчок()
    hideCols False
End Sub

Sub hideCols(ByVal bln As Boolean)
    Dim col, arr
    arr = Array(3, 7, 11, 17, 21, 25, 29, 35, 39, 43, 47, 53, 57, 61, 65, 71, 79, 89, 93, 97, 101, 107, 111, 115)
    For Each col In arr
        Columns(col).Hidden = bln
    Next
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Среда, 10.01.2024, 22:13
 
Ответить
СообщениеGevox, я со своей стороны просто покажу, как можно подсократить код при вашем двухкнопочном варианте (чтобы народ не пугать такими листингами):

[vba]
Код
Sub Кнопка1_Скрытьстолбцы()
    hideCols True
End Sub

Sub Кнопка2_Щелчок()
    hideCols False
End Sub

Sub hideCols(ByVal bln As Boolean)
    Dim col, arr
    arr = Array(3, 7, 11, 17, 21, 25, 29, 35, 39, 43, 47, 53, 57, 61, 65, 71, 79, 89, 93, 97, 101, 107, 111, 115)
    For Each col In arr
        Columns(col).Hidden = bln
    Next
End Sub
[/vba]

Автор - Gustav
Дата добавления - 10.01.2024 в 22:09
Gevox Дата: Четверг, 11.01.2024, 09:37 | Сообщение № 17
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Попробовал сделать так с галочкой, макрос работает, но выдает ошибку после каждого нажатия "Run-time error 1004 нельзя установить свойство Show класса Range. Подскажите, пожалуйста, как по красоте сделать. Где можно почитать литературу на эту тему?
Private Sub CheckBox1_Click()
Columns(3).Hidden = CheckBox1.Value
Columns(7).Hidden = CheckBox1.Value
Columns(11).Hidden = CheckBox1.Value
Columns(17).Hidden = CheckBox1.Value
Columns(21).Hidden = CheckBox1.Value
Columns(25).Hidden = CheckBox1.Value
Columns(29).Hidden = CheckBox1.Value
Columns(35).Hidden = CheckBox1.Value
Columns(39).Hidden = CheckBox1.Value
Columns(43).Hidden = CheckBox1.Value
Columns(47).Hidden = CheckBox1.Value
Columns(53).Hidden = CheckBox1.Value
Columns(57).Hidden = CheckBox1.Value
Columns(61).Hidden = CheckBox1.Value
Columns(65).Hidden = CheckBox1.Value
Columns(71).Hidden = CheckBox1.Value
Columns(79).Hidden = CheckBox1.Value
Columns(89).Hidden = CheckBox1.Value
Columns(93).Hidden = CheckBox1.Value
Columns(97).Hidden = CheckBox1.Value
Columns(101).Hidden = CheckBox1.Value
Columns(107).Hidden = CheckBox1.Value
Columns(111).Hidden = CheckBox1.Value
Columns(115).Hidden = CheckBox1.Value
Columns(3).Show = Not CheckBox1.Value
Columns(11).Show = Not CheckBox1.Value
Columns(17).Show = Not CheckBox1.Value
Columns(21).Show = Not CheckBox1.Value
Columns(25).Show = Not CheckBox1.Value
Columns(29).Show = Not CheckBox1.Value
Columns(35).Show = Not CheckBox1.Value
Columns(39).Show = Not CheckBox1.Value
Columns(43).Show = Not CheckBox1.Value
Columns(47).Show = Not CheckBox1.Value
Columns(53).Show = Not CheckBox1.Value
Columns(57).Show = Not CheckBox1.Value
Columns(61).Show = Not CheckBox1.Value
Columns(65).Show = Not CheckBox1.Value
Columns(71).Show = Not CheckBox1.Value
Columns(79).Show = Not CheckBox1.Value
Columns(89).Show = Not CheckBox1.Value
Columns(93).Show = Not CheckBox1.Value
Columns(97).Show = Not CheckBox1.Value
Columns(101).Show = Not CheckBox1.Value
Columns(107).Show = Not CheckBox1.Value
Columns(111).Show = Not CheckBox1.Value
Columns(115).Show = Not CheckBox1.Value
End Sub
 
Ответить
СообщениеПопробовал сделать так с галочкой, макрос работает, но выдает ошибку после каждого нажатия "Run-time error 1004 нельзя установить свойство Show класса Range. Подскажите, пожалуйста, как по красоте сделать. Где можно почитать литературу на эту тему?
Private Sub CheckBox1_Click()
Columns(3).Hidden = CheckBox1.Value
Columns(7).Hidden = CheckBox1.Value
Columns(11).Hidden = CheckBox1.Value
Columns(17).Hidden = CheckBox1.Value
Columns(21).Hidden = CheckBox1.Value
Columns(25).Hidden = CheckBox1.Value
Columns(29).Hidden = CheckBox1.Value
Columns(35).Hidden = CheckBox1.Value
Columns(39).Hidden = CheckBox1.Value
Columns(43).Hidden = CheckBox1.Value
Columns(47).Hidden = CheckBox1.Value
Columns(53).Hidden = CheckBox1.Value
Columns(57).Hidden = CheckBox1.Value
Columns(61).Hidden = CheckBox1.Value
Columns(65).Hidden = CheckBox1.Value
Columns(71).Hidden = CheckBox1.Value
Columns(79).Hidden = CheckBox1.Value
Columns(89).Hidden = CheckBox1.Value
Columns(93).Hidden = CheckBox1.Value
Columns(97).Hidden = CheckBox1.Value
Columns(101).Hidden = CheckBox1.Value
Columns(107).Hidden = CheckBox1.Value
Columns(111).Hidden = CheckBox1.Value
Columns(115).Hidden = CheckBox1.Value
Columns(3).Show = Not CheckBox1.Value
Columns(11).Show = Not CheckBox1.Value
Columns(17).Show = Not CheckBox1.Value
Columns(21).Show = Not CheckBox1.Value
Columns(25).Show = Not CheckBox1.Value
Columns(29).Show = Not CheckBox1.Value
Columns(35).Show = Not CheckBox1.Value
Columns(39).Show = Not CheckBox1.Value
Columns(43).Show = Not CheckBox1.Value
Columns(47).Show = Not CheckBox1.Value
Columns(53).Show = Not CheckBox1.Value
Columns(57).Show = Not CheckBox1.Value
Columns(61).Show = Not CheckBox1.Value
Columns(65).Show = Not CheckBox1.Value
Columns(71).Show = Not CheckBox1.Value
Columns(79).Show = Not CheckBox1.Value
Columns(89).Show = Not CheckBox1.Value
Columns(93).Show = Not CheckBox1.Value
Columns(97).Show = Not CheckBox1.Value
Columns(101).Show = Not CheckBox1.Value
Columns(107).Show = Not CheckBox1.Value
Columns(111).Show = Not CheckBox1.Value
Columns(115).Show = Not CheckBox1.Value
End Sub

Автор - Gevox
Дата добавления - 11.01.2024 в 09:37
Gustav Дата: Четверг, 11.01.2024, 12:01 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2695
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
выдает ошибку после каждого нажатия "Run-time error 1004 нельзя установить свойство Show класса Range.

Show является МЕТОДОМ объекта Range: https://learn.microsoft.com/en-us/office/vba/api/excel.range.show
Hidden является СВОЙСТВОМ объекта Range: https://learn.microsoft.com/en-us/office/vba/api/excel.range.hidden
Свойство может стоять слева от знака "=" в операторе присваивания, а метод - нет (во всяком случае, в подавляющем большинстве случаев, к коим относится и рассматриваемая ситуация).

Вы чего хотите добиться, так пытаясь использовать Show в данном контексте? Типа "усилить" Hidden что ли? Расскажите, пожалуйста, простыми словами смысл задуманного.

Ну, а по поводу "красивости" и краткости кода - я уже всё показал выше. Здесь тоже можно применить аналогичный цикл по массиву номеров колонок.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
выдает ошибку после каждого нажатия "Run-time error 1004 нельзя установить свойство Show класса Range.

Show является МЕТОДОМ объекта Range: https://learn.microsoft.com/en-us/office/vba/api/excel.range.show
Hidden является СВОЙСТВОМ объекта Range: https://learn.microsoft.com/en-us/office/vba/api/excel.range.hidden
Свойство может стоять слева от знака "=" в операторе присваивания, а метод - нет (во всяком случае, в подавляющем большинстве случаев, к коим относится и рассматриваемая ситуация).

Вы чего хотите добиться, так пытаясь использовать Show в данном контексте? Типа "усилить" Hidden что ли? Расскажите, пожалуйста, простыми словами смысл задуманного.

Ну, а по поводу "красивости" и краткости кода - я уже всё показал выше. Здесь тоже можно применить аналогичный цикл по массиву номеров колонок.

Автор - Gustav
Дата добавления - 11.01.2024 в 12:01
Gevox Дата: Четверг, 11.01.2024, 15:19 | Сообщение № 19
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Hidden- скрывает столбцы если галочка есть. Show- раскрывает (показывает) столбцы если галочки нет. Кнопка выполняет свою функцию, но выдает ошибку ,которую можно просто закрыть.


Сообщение отредактировал Gevox - Четверг, 11.01.2024, 15:21
 
Ответить
СообщениеHidden- скрывает столбцы если галочка есть. Show- раскрывает (показывает) столбцы если галочки нет. Кнопка выполняет свою функцию, но выдает ошибку ,которую можно просто закрыть.

Автор - Gevox
Дата добавления - 11.01.2024 в 15:19
Gustav Дата: Четверг, 11.01.2024, 15:46 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2695
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Кнопка выполняет свою функцию, но выдает ошибку ,которую можно просто закрыть.

Ваша процедура работает ровно до половины, выполняя все Hidden и прерываясь из-за ошибки на первом же Show. Столбцы нормально скрываются (только за счет Hidden), когда в чек-боксе устанавливается "галочка", и нормально опять показываются (тоже только за счет Hidden), когда "галочка" удаляется. Строки с Show здесь не нужны от слова "совсем".

А "красиво" ваша процедура может выглядеть примерно так (как я уже показывал выше):
[vba]
Код
Private Sub CheckBox1_Click()
    Dim col, arr
    arr = Array(7, 11, 17, 21, 25, 29, 35, 39, 43, 47, 53, 57, 61, 65, 71, 79, 89, 93, 97, 101, 107, 111, 115)
    For Each col In arr
        Columns(col).Hidden = CheckBox1.Value
    Next
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Кнопка выполняет свою функцию, но выдает ошибку ,которую можно просто закрыть.

Ваша процедура работает ровно до половины, выполняя все Hidden и прерываясь из-за ошибки на первом же Show. Столбцы нормально скрываются (только за счет Hidden), когда в чек-боксе устанавливается "галочка", и нормально опять показываются (тоже только за счет Hidden), когда "галочка" удаляется. Строки с Show здесь не нужны от слова "совсем".

А "красиво" ваша процедура может выглядеть примерно так (как я уже показывал выше):
[vba]
Код
Private Sub CheckBox1_Click()
    Dim col, arr
    arr = Array(7, 11, 17, 21, 25, 29, 35, 39, 43, 47, 53, 57, 61, 65, 71, 79, 89, 93, 97, 101, 107, 111, 115)
    For Each col In arr
        Columns(col).Hidden = CheckBox1.Value
    Next
End Sub
[/vba]

Автор - Gustav
Дата добавления - 11.01.2024 в 15:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как сделать так, чтобы одна кнопка выполняла два действия? (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!