Проблема в следующем. Необходимо с помощью макроса задавать начальные значения чекбоксов. Но часть из них сгруппированы, дабы не расползались (они должны располагаться в определённых местах над картинкой). Чекбоксы, которые не сгруппированы управляются без проблем, а при попытке обратиться к этим макрос даёт сбой. Как это можно обойти?
Цитировать2. К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.
Прикрепить к сообщению можно только файлы gif,jpg,rar,zip,7z,bas,frm,cls,docx,xlsx,xls размером до 1000 Кб.
Прикрепить файл можно в полной форме ответа на сообщение. Под окном для ввода сообщения нажмите на знак "+" возле текста "Дополнительные опции..."
Я поэтому и писал этот вопрос в продолжении изначальной темы. Там и файл был. Хотя не вижу, зачем он здесь, но раз надо, прикрепляю.
так попробуйте
Me.CheckBox1.Value = False
Me.CheckBox2.Value = False
Попробовал вставить такой код
With Worksheets("Оформление груза")
.Me.CheckBox21.Value = False
.Me.CheckBox22.Value = False
End With
Но результат тот же. Макрос останавливается и требует отладки кода.
P.S. А что за оператор Me? Не нашёл его в справке.
P.P.S. Пробовал с помощью макроса сначала разгруппировать, а после выполнения действий сгруппировать заново, но макрос получается одноразовый. При каждой группировке получается новый номер группы, а так как таких групп несколько, и задействуются при разных макросах, получается, что даже счётчик номера группы сделать нельзя.
точки перед Ме не нужно.
Ме - обращение (моя книга). тоже самое что This (текущая книга)
П.С. писал же в прошлой теме что кнопки не рабочие, зачем тот же файл цеплять.
ЦитироватьWhen you create a new application-level project for Excel, Visual Studio automatically creates a ThisAddIn.vb or ThisAddIn.cs code file. You can access the Application object by using Me.Application or this.Application.
Не совсем понял, что значит кнопки не рабочие? Там всего одна кнопка и у меня она работает, запускает макрос.
Вывел обращение к галочкам из выражения With и убрал точки, то есть теперь просто:
Range("B3").Select
ActiveCell.FormulaR1C1 = _
"='Вспомогательные расчёты'!R[10]C+'Вспомогательные расчёты'!R[12]C"
Range("B5").Select
ActiveCell.FormulaR1C1 = _
"=IF('Вспомогательные расчёты'!R[-4]C,0,'Вспомогательные расчёты'!R[-3]C)"
Range("B7").Select
Selection.ClearContents
Me.CheckBox21.Value = False
Me.CheckBox22.Value = False
With Worksheets("Оформление груза")
.OLEObjects("ComboBox21").Object.ListIndex = 0
.OLEObjects("OptionButton21").Object.Value = True
.OLEObjects("OptionButton22").Object.Value = False
.OLEObjects("OptionButton23").Object.Value = False
.OLEObjects("OptionButton24").Object.Value = False
End With
Range("B12").Select
Но теперь макрос даже не запускается, сразу появляется надпись:
Compile error:
Invalid use of Me keyword
Насколько я понимаю, сие обозначает, что VBA не понимает такое обращение Me, либо я его как-то не так задаю.
ЦитироватьНе совсем понял, что значит кнопки не рабочие?
уточняю - элементы ActiveX не реагируют на мышь.
такое чувство что это вообще картинки. хотя в режиме конструктора обзываются как нужно.
сохраните в xlsm и заархивируйте для выкладывания на форум.
Может у вас отключены макросы, специально скачал с форума файл, у меня всё работает. На всякий случай заливаю с изменённым расширением (архиватора нет). Просто поменяйте расширение с .rar на .xlsm
т.к. у вас все элементы связаны с ячейками то пойдем другим путем.
Sub Новый_заказ()
Range("B3").FormulaR1C1 = _
"='Вспомогательные расчёты'!R[10]C+'Вспомогательные расчёты'!R[12]C"
Range("B5").FormulaR1C1 = _
"=IF('Вспомогательные расчёты'!R[-4]C,0,'Вспомогательные расчёты'!R[-3]C)"
Range("B7").ClearContents
Range("B8") = 1
With Worksheets("Вспомогательные расчёты")
.Range("B1,B3,B8,B9,B10") = False
.Range("B7") = True
End With
Range("B12").Select
End Sub
Вот я балбес! Даже не подумал подойти с этой стороны. Спасибо огромное, всё получилось!