none
Проблема совместимости макросов Excel RRS feed

  • Вопрос

  • Приветствую!

    Столкнулся с такой проблемой. Написал макрос в Excel. Общая суть - создает некоторое количество чекбоксов (в зависимости от количества заполненных ячеек).

    В 2013 и 2016 офисе работает как задумано. В офисе 2007 выдает ошибку "нельзя установить свойство caption класса checkbox". Пробовал использовать свойство Text - то же самое "нельзя установить свойство text класса checkbox". С чем может быть связана проблема? Оба варианта кода (см. ниже) выдают одну и ту же (по смыслу) ошибку.

    Переменная curcelname строкового типа - в ней предыдущим кодом формируется текст, который должен отображаться на чекбоксе. Длина получаемого имени не превышает сотню символов.

    Если закомментить строчку '.Text = curcelname' работает без проблем, но имена у чекбоксов стандартные "Флажок 1" и т.д.

    ActiveSheet.CheckBoxes.Add(ActiveCell.Left, ActiveCell.Top, 600, 17.25).Select
    With Selection
        .Value = xlOff
        .Text = curcelname
    End With
    ActiveSheet.CheckBoxes.Add(ActiveCell.Left, ActiveCell.Top, 600, 17.25).Select
    With Selection
        .Value = xlOff
        .Caption = curcelname
    End With
    27 января 2017 г. 12:50

Ответы

  • Проблема не актуальна. Если кто-то столкнется с похожим - удалось решить с помощью ActiveX чекбоксов

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=ActiveCell.Left, Top:=ActiveCell.Top, Width:=600, Height:=17.25).Select
    With Selection
        .Object.Caption = curcelname
        .Object.Value = False
    End With

    31 января 2017 г. 7:42