Avatar billede emil_ger Nybegynder
25. august 2008 - 23:43 Der er 4 kommentarer og
1 løsning

VBA: IF og ELSE

I nedenstående skal der for at loopet køres tjekkes om cellen i+3,7 er tom. Er cellen ikke tom, da skal den springe videre til næste række. Den fejler - naturligvis delvis pga. Else: Next i, men hvordan skal det så gøres?
----------------------------------------

        Dim i As Integer
        For i = 1 To Selection.CurrentRegion.Rows.Count - 1
        If Worksheets("Ark1").Cells(i + 3, 7) = "" Then
        Print #1, "autECLSession.autECLOIA.WaitForAppAvailable"
        Print #1, ""
        Print #1, "autECLSession.autECLOIA.WaitForInputReady"
        Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & Worksheets("Ark1").Cells(i + 3, 2) & "01" & Chr(34)
        Print #1, "autECLSession.autECLOIA.WaitForInputReady"
        Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & "[Tab]" & Chr(34)
        Print #1, "autECLSession.autECLOIA.WaitForInputReady"
        Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & Worksheets("Ark1").Cells(i + 3, 5) & Chr(34)
        Print #1, "autECLSession.autECLOIA.WaitForInputReady"
        Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & "[pf20]" & Chr(34)
   
        Next i
        Else: Next i
----------------------------------
Avatar billede emil_ger Nybegynder
25. august 2008 - 23:48 #1
Det vil faktisk være optimalt, hvis den tjekker at:
Worksheets("Ark1").Cells(i + 3, 2) ikke er blank.
Worksheets("Ark1").Cells(i + 3, 5) ikke er blank.
If Worksheets("Ark1").Cells(i + 3, 7) er blank.
og kun hvis alle tre er opfylte, skal den aktuelle række bearbejdes.
Avatar billede sager Nybegynder
26. august 2008 - 10:10 #2
Dim i As Integer
        For i = 1 To Selection.CurrentRegion.Rows.Count - 1
            If Worksheets("Ark1").Cells(i + 3, 7) = "" And Worksheets("Ark1").Cells(i + 3, 2) <> "" And Worksheets("Ark1").Cells(i + 3, 5) <> "" Then
                Print #1, "autECLSession.autECLOIA.WaitForAppAvailable"
                Print #1, ""
                Print #1, "autECLSession.autECLOIA.WaitForInputReady"
                Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & Worksheets("Ark1").Cells(i + 3, 2) & "01" & Chr(34)
                Print #1, "autECLSession.autECLOIA.WaitForInputReady"
                Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & "[Tab]" & Chr(34)
                Print #1, "autECLSession.autECLOIA.WaitForInputReady"
                Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & Worksheets("Ark1").Cells(i + 3, 5) & Chr(34)
                Print #1, "autECLSession.autECLOIA.WaitForInputReady"
                Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & "[pf20]" & Chr(34)
            End If
        Next i
Avatar billede emil_ger Nybegynder
26. august 2008 - 11:42 #3
Det virker for så vidt, men så snart den når en celle med indholdet "#NAVN?" (Da den ikke kunne hente data for denne celle), så stopper scriptet, hvor den helst skulle fortsætte til næste række; jeg var ikke opmærksom på denne situation før, så du får point for korrekt svar :)
Tak.
Har du en løsning til mit problem, så vil det være super.
Avatar billede sager Nybegynder
26. august 2008 - 11:57 #4
Byg en ekstra if-løkke udenom den if-løkke der allerede er: [jeg bruger eksemplet at #NAVN? kan stå i Cells(i + 3, 2)]

If Not (IsError(Worksheets("Ark1").Cells(i + 3, 2))) Then
...
End If
Avatar billede emil_ger Nybegynder
26. august 2008 - 12:12 #5
Tak for det, works like a charm :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester