Avatar billede emil_ger Nybegynder
25. august 2008 - 20:42 Der er 5 kommentarer og
1 løsning

VBA: Loop skal starte i en specificeret celle og arbejde sig ned

Jeg skal i nedenstående script starte i cellerne B4 og E4, og arbejde mig ned i rækkerne indtil sidste række.

Loopet fungerer udmærket, men bruger selvfølgelig kun dataen i B4 og E4, hvor den skulle gå B4 og E4, B5 og E5, og så fremdeles.

Mit script:
--------------------------------
Sub Loop1()
Open "C:\test.txt" For Append As #1
        Dim i As Integer
        For i = 1 To Selection.CurrentRegion.Rows.Count - 1
   
        Print #1, "autECLSession.autECLOIA.WaitForAppAvailable"
        Print #1, ""
        Print #1, "autECLSession.autECLOIA.WaitForInputReady"
        Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & Worksheets("Ark1").Range("B4") & "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").Range("E4") & Chr(34)
        Print #1, "autECLSession.autECLOIA.WaitForInputReady"
        Print #1, "autECLSession.autECLPS.SendKeys " & Chr(34) & "[pf20]" & Chr(34)
       
        Next i
Close #1
End Sub
Avatar billede kabbak Professor
25. august 2008 - 22:38 #1
Sub Loop1()
Open "C:\test.txt" For Append As #1
        Dim i As Integer
        For i = 1 To Selection.CurrentRegion.Rows.Count - 1
 
        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
Close #1
End Sub
Avatar billede emil_ger Nybegynder
25. august 2008 - 23:03 #2
Tak for svar, desværre bliver der ikke printet fra selve loopet, men subben bliver kaldt, idet "Print #1, "Test" sker.

Kan du se fejlen?
-------------------------------------------
Sub Loop1()
Open "C:\test.txt" For Append As #1
Print #1, "Test"
        Dim i As Integer
        For i = 1 To Selection.CurrentRegion.Rows.Count - 1
        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
Close #1
End Sub
Avatar billede emil_ger Nybegynder
25. august 2008 - 23:16 #3
Hmm ... række 3 regnearket ødelagde scriptet :\ Nu kører det dog.

Har du en idé til, hvordna jeg kan springe en linie over, hvis (eksempelvis ved 4. linie) G4 indeholder tekst?
Avatar billede emil_ger Nybegynder
25. august 2008 - 23:16 #4
Og smid forresten svar :) Tak for hjælpen.
Avatar billede kabbak Professor
25. august 2008 - 23:31 #5
et svar ;-))
Avatar billede kabbak Professor
26. august 2008 - 08:15 #6
Sub Loop1()
Open "C:\test.txt" For Append As #1
Print #1, "Test"
        Dim i As Integer
        For i = 1 To Selection.CurrentRegion.Rows.Count - 1
       
        ' tjekker om begge celler er tal, hvis ja, koden køres
        If IsNumeric(Worksheets("Ark1").Cells(i + 3, 2)) And IsNumeric(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
Close #1
End Sub
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