Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 Как узнать, есть ли в ячейке Excel галочка CheckBox и прочитать ее значение?  [new]
Игорь1973
Member

Откуда: Санкт-Петербург
Сообщений: 280
При импорте из Excel-файла имеем цикл по всем ячейкам (по строкам и колонкам).
Ни кто не подскажет, как определить содержится ли элемент управления "галочка".
Получить ее и прочитать ее значение.
Заранее спасибо.
26 мар 19, 20:38    [21844272]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, есть ли в ячейке Excel галочка CheckBox и прочитать ее значение?  [new]
Казанский
Member

Откуда:
Сообщений: 1307
Игорь1973, чекбокс может быть двух видов: типа Формы или ActiveX. Какой у Вас? Если не определите сами, приложите файл-пример, в нем обязательно сохраните размер чекбокса и расположение относительно ячеек.
27 мар 19, 14:51    [21845132]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, есть ли в ячейке Excel галочка CheckBox и прочитать ее значение?  [new]
Игорь1973
Member

Откуда: Санкт-Петербург
Сообщений: 280
См. правильный скриншот.

К сообщению приложен файл. Размер - 133Kb
27 мар 19, 19:16    [21845366]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, есть ли в ячейке Excel галочка CheckBox и прочитать ее значение?  [new]
Игорь1973
Member

Откуда: Санкт-Петербург
Сообщений: 280
А также прикладываю сами Excel-файлы.
Спасибо.

К сообщению приложен файл (XlsxFiles.zip - 39Kb) cкачать
27 мар 19, 19:17    [21845367]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, есть ли в ячейке Excel галочка CheckBox и прочитать ее значение?  [new]
Игорь1973
Member

Откуда: Санкт-Петербург
Сообщений: 280
Знаю, что есть коллекция Checkboxes

oExcelSheet.Checkboxes

Но как определить связь какой-чекбокс к какой ячейке?
28 мар 19, 14:28    [21846124]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, есть ли в ячейке Excel галочка CheckBox и прочитать ее значение?  [new]
Игорь1973
Member

Откуда: Санкт-Петербург
Сообщений: 280
Вот нашел кое-что. Ну, неужели же по такому длинному имени обращаться "Check Box 32"...

Sub Checkbox_Uncheck()

    Dim Response As VbMsgBoxResult

    If Range("A6") = True Then
        Response = MsgBox("Are you finished with the keyfob programmer?", vbQuestion + vbYesNo)

        If Response = vbNo Then
            MsgBox "Finish scheduled programming before selecting the completed checkbox!", vbInformation
            Worksheets("Sign Up Sheet").CheckBoxes("Check Box 32").Value = xlOff
        Else
            'Call Reload_financials
        End If
    Else
    End If

    Dim myLastRow As Long
    Dim i As Long

    Application.ScreenUpdating = False
    Application.Wait Now + TimeSerial(0, 0, 1)


    '   Find last row
    myLastRow = Cells(Rows.Count, "A").End(xlUp).Row

    '   Loop through range
    For i = 6 To myLastRow
        If Cells(i, "A").Value = True Then Range(Cells(i, "C"), Cells(i, "E")).ClearContents

        Worksheets("Sign Up Sheet").CheckBoxes("Check Box 32").Value = xlOff
    Next i

    Application.ScreenUpdating = True
End Sub
28 мар 19, 14:45    [21846150]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, есть ли в ячейке Excel галочка CheckBox и прочитать ее значение?  [new]
sergeyvg
Member

Откуда: Тольятти
Сообщений: 297
Вариант1 ("Колхозный", на мой взгляд предпочтительный)
Делаем скрытую колонку, например G. В каждом элементе устанавливаем свойство "Связь с ячейкой".
Например, для флажка в ячейке C2 ссылка на $G$2. Пробегаемся по ячейкам колонки G и узнаем ИСТИНА или ЛОЖЬ для каждого флажка.

Вариант2 ("Неколхозный", не требует вмешательства в существующий файл)
Пробегаем по Shapes, смотрим адрес, значение.
For Each MyShp In Worksheets("Лист1").Shapes
  If MyShp.Type = 8 Then
    MsgBox MyShp.TopLeftCell.Address & " """ & MyShp.Name & """ " & MyShp.ControlFormat.Value
  End If
Next
28 мар 19, 20:00    [21846580]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить