Перебрать флажки в VBA

Я пытаюсь создать код для циклического просмотра пользовательской формы, чтобы увидеть, отмечены ли флажки, а затем создать PDF-файл листов. Однако я получаю сообщение об ошибке «объект не поддерживает это свойство или метод» в строке «Если ctl.controlFormat.Value = True Then». Я надеюсь, что вы можете помочь мне :)

     Option Explicit


Sub Get_PDF_Click()

Dim ReportName As String
ReportName = ActiveSheet.Cells(4, 20).Value
Dim OutputPath As String
OutputPath = "T:\5. Fælles\Optima Lancering Version 1.0\6. Oversigtsark\KontoInvest\Historik\"
Dim YYMM As String
Dim Name_of_File As String
Dim Name As String
'Dim x1TypePDF As Variant
Dim cbox As CheckBox
Dim FormControlType As Variant
Dim ctl As Control
'Dim shp As Shape

YYMM = Format(WorksheetFunction.EoMonth(Now(), -1), "YYMM")

Name = "BankNordik_faktaark" & YYMM
Name_of_File = OutputPath & "BankNordik\" & Name

 '------- LOOP THROUGH CHECKBOXES -------
For i = 0 To 6
    For Each ctl In Me.Controls
    'For Each ctl In PDFUserForm.Controls
        If TypeName(ctl) = "CheckBox" Then
        'If ctl.FormControlType = xlCheckBox Then
            If ctl.ControlFormat.Value = True Then
                    For Each Ws In Worksheets
                        If Ws.Name = "Fakta " & Kunde_Array(i + 1, 1) Then
                            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                            Name_of_File, Quality _
                            :=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
                            :=False, OpenAfterPublish:=False
                        End If
                    Next Ws
             End If
        End If
    Next ctl
Next i
End Sub

В какой строке ошибка? • Удалите Dim x1TypePDF As Variant и замените Type:=x1TypePDF на Type:=xlTypePDF. Обратите внимание, что xl — это XL в нижнем регистре, а не X1. • Также по возможности избегайте Variant, это наихудший тип, который вы можете выбрать: YYMM, Name_of_File и Name могут быть объявлены как String. • Поскольку вы используете Option Explicit, ваш код должен выдавать ошибку, если вы не объявляете i As Long. • Kunde_Array также не объявлен, так что очистите свои переменные и объявите все.

Pᴇʜ 23.01.2019 10:10

Именно в строке "Для каждого шп в PDFUserForm" :) и спасибо. Я все еще получаю сообщение об ошибке :/ @Pᴇʜ

Therese 23.01.2019 10:15

Пожалуйста, редактировать свой вопрос и обновите код до того, что у вас есть после того, как вы применили мои предложения. Обратите внимание, что вы Dim PDFUserForm As UserForm, но PDFUserForm никогда не устанавливается на что-то. Следовательно, PDFUserForm — это Nothing.

Pᴇʜ 23.01.2019 10:22

@Pᴇʜ Я отредактировал вопрос. Также i и kundearray определены как общедоступные в другом модуле.

Therese 23.01.2019 10:26

Что бы вы установили для PDFUserForm в @Pᴇʜ? :) :) :) и

Therese 23.01.2019 10:27

@ Therese ehhhm, конечно, к желаемой пользовательской форме? • Если PDFUserForm уже является именем вашей пользовательской формы, просто удалите Dim PDFUserForm As UserForm.

Pᴇʜ 23.01.2019 10:28

Вам не нужно перебирать элементы управления? -> Dim shp As Control и For Each shp In Me.Controls

JvdV 23.01.2019 10:33

@JvdV Я только что отредактировал код и ошибку в своем посте :)

Therese 23.01.2019 10:40

@ Therese FormControlType только для Shapes. Поскольку вы изменили его на Control, вы должны использовать If TypeName(shp) = "CheckBox" Then. Также рассмотрите возможность изменения имени переменной с shp на ctl, чтобы не запутаться в типе этой переменной.

Pᴇʜ 23.01.2019 10:48

@Pᴇʜ СПАСИБО :) теперь я получаю еще одну ошибку, см. мой отредактированный пост.

Therese 23.01.2019 10:59

@Тереза, да ладно вам, вы должны начать исследовать и читать документацию. Я не могу исправить весь код для вас. Объект CheckBox не имеет .ControlFormat.

Pᴇʜ 23.01.2019 11:05
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
11
266
0

Другие вопросы по теме