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
Annonceindlæg fra Axcess Nordic
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
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
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?
25. august 2008 - 23:16
#4
Og smid forresten svar :) Tak for hjælpen.
25. august 2008 - 23:31
#5
et svar ;-))
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig