Экспорт в Excel в Word (VBA): проблема с циклом - PullRequest
1 голос
/ 13 октября 2010

У меня проблемы со следующим:

Я хочу экспортировать данные из листа Excel в документ Word.Код для этого работает, но проблема в том, что определенные блоки кода необходимо повторять.И это все идет не так.

Это фрагмент кода:

        Voortgang:



If Controle1 = True Then
            GoTo OpmaakKatern2


    End If
    If Controle2 = True Then
        GoTo OpmaakKatern3

    End If







OpmaakKatern1:
                If Datum1 = Empty Then
                        Controle1 = False
                        GoTo Eindsorteren
                Else:
                    Controle1 = True
                End If
                .TypeParagraph  'Hier start katern1
                .TypeParagraph
                .Font.Size = 12
                .Font.Bold = True
                .Font.Underline = True
                .TypeText Text:=Katern1     'Hier staat de naam van de katern
                .Font.Bold = False
                .Font.Underline = False
                .TypeParagraph
                .Font.Size = 10
                .Font.Underline = True
                .TypeText Text:="Datum:"    'Hier komt de gesorteerde datum, in te lezen als variabele
                .Font.Underline = False
                .TypeText Text:=" " & Datum1   'Hier komt de gesorteerde datum, in te lezen als variabele (aanhalingstekens verwijderen voor de variabele)
                .TypeParagraph
                .Font.Underline = True
                .TypeText Text:="Gerealiseerde leerplandoelstellingen:"
                .Font.Underline = False
                If Katern1 = "Een nieuwe start" Then
                    GoTo Invulling_EenNieuweStart
                ElseIf Katern1 = "Alles heeft zijn tijd" Then
                    GoTo Invulling_AllesHeeftZijnTijd
                ElseIf Katern1 = "De wereld aan je voeten" Then
                    GoTo Invulling_DeWereldAanJeVoeten
                ElseIf Katern1 = "Een levend boek" Then
                    GoTo Invulling_EenLevendBoek
                ElseIf Katern1 = "Drempels" Then
                    GoTo Invulling_Drempels
                ElseIf Katern1 = "Kerstmis" Then
                    GoTo Invulling_Kerstmis
                ElseIf Katern1 = "Confituur of choco" Then
                    GoTo Invulling_ConfituurOfChoco
                ElseIf Katern1 = "Hoe groot is de hemel?" Then
                    GoTo Invulling_HoeGrootIsDeHemel
                ElseIf Katern1 = "Ongelovige Thomas" Then
                    GoTo Invulling_OngelovigeThomas
                ElseIf Katern1 = "Feesten" Then
                    GoTo Invulling_Feesten
                ElseIf Katern1 = "Er is er één jarig!" Then
                    GoTo Invulling_ErIsErEénJarig
                ElseIf Katern1 = "Eén van hart" Then
                    GoTo Invulling_EénVanHart
                ElseIf Katern1 = "Ervoor gaan" Then
                    GoTo Invulling_ErvoorGaan
                ElseIf Katern1 = "Groen gras" Then
                    GoTo Invulling_GroenGras
                ElseIf Katern1 = "RELatie" Then
                    GoTo Invulling_RELatie
                ElseIf Katern1 = "Vele plaatjes" Then
                    GoTo Invulling_VelePlaatjes
                ElseIf Katern1 = "Iedereen fan" Then
                    GoTo Invulling_IedereenFan
                ElseIf Katern1 = "Schattenjacht" Then
                    GoTo Invulling_Schattenjacht
                ElseIf Katern1 = "Lichtbakens" Then
                    GoTo Invulling_Lichtbakens
                ElseIf Katern1 = "Rijke Luis" Then
                    GoTo Invulling_RijkeLuis
                ElseIf Katern1 = "Hemel op aarde" Then
                    GoTo Invulling_HemelOpAarde
                ElseIf Katern1 = "Op bezoek" Then
                    GoTo Invulling_OpBezoek
                End If

И это пример блока Invulling_:

Invulling_ErIsErEénJarig:


                        If Worksheets("Theo").Rij12_4.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij12
                        End If
                        If Worksheets("Theo").Rij13_4.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij13
                        End If
                        If Worksheets("Theo").Rij14_4.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij14
                        End If
                        If Worksheets("Theo").Rij15_3.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij15
                        End If
                        If Worksheets("Theo").Rij20_6.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij20
                        End If
                        If Worksheets("Theo").Rij22_5.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij22
                        End If
                        If Worksheets("Theo").Rij25_4.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij25
                        End If
                        If Worksheets("Theo").Rij28_4.Value = True Then
                            .TypeParagraph
                            .TypeText Text:=Rij28
                        End If
                        GoTo Voortgang

Вот как это должно работать: сначала запускается блок «OpmaakKatern1». В этом блоке выбирается определенный бит контента ip («Invulling _...»), а в конце этих блоков Invulling_ естьКоманда GoTo, которая отправляет код до контроллера («Voortgang:»), который должен проверить, какой «OpmaakKatern ..» уже был выполнен. Но это не работает. Она продолжает повторять второй OpmaakKatern вместо перехода ктретий OpmaakKatern.

Кто-нибудь может мне помочь в этом?

Спасибо большое!

С уважением, Марк

1 Ответ

0 голосов
/ 13 октября 2010

Вы уверены, что у вас есть строка где-то в блоке OpmaakKatern2, для которой Controle2 имеет значение True?

Controle2 = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...