Hej
Amatör som inte behärskar For Loop och skulle behöva hjälp med följande.
Har ett excel ark där jag vill gör några tusen loopar genom ett blad.
Koden ser ut som följer och det jag vill är att kunna köra samma kod men då på 8 rader neråt i bladet
och nästa gång 16 rader neråt o.s.v.
Option Explicit
Sub ExtraheraTal()
Dim ws As Worksheet
Dim i As Long
' Ange arbetsbladet där tabellen finns
Set ws = ThisWorkbook.Sheets("StigandeFallande") ' Byt ut "DittArbetsbladNamn" mot det faktiska namnet
' Loopa igenom varje rad i tabellen
For i = 3 To 10
' Hämta värden från kolumn B, C och D
Dim tal1 As Double
Dim tal2 As Double
Dim tal3 As Double
tal1 = ws.Cells(i, 2).Value
tal2 = ws.Cells(i, 3).Value
tal3 = ws.Cells(i, 4).Value
' Hämta tecknet från kolumn K
Dim tecken As String
tecken = ws.Cells(i, 11).Value
' Beräkna det önskade talet baserat på tecknet
Dim resultat As Double
Select Case tecken
Case "1"
resultat = tal1
Case "X"
resultat = tal2
Case "2"
resultat = tal3
End Select
' Skriv resultatet till kolumn F
ws.Cells(i, 6).Value = resultat
Next i
Call ExtraheraStigandeFöljder
End Sub
Sub ExtraheraStigandeFöljder()
Dim ws As Worksheet
Dim i As Long
Dim stigande As Long
Dim strA As String, tidigare As String
' Ange arbetsbladet där tabellen finns
Set ws = ThisWorkbook.Sheets("StigandeFallande") ' Byt ut "DittArbetsbladNamn" mot det faktiska namnet
' Loopa igenom varje rad i tabellen
For i = 4 To 11
' Hämta aktuellt tal från kolumn F
Dim aktuelltTal As Double
aktuelltTal = ws.Cells(i, 6).Value
' Hämta föregående tal från kolumn F
Dim forrigeTal As Double
forrigeTal = ws.Cells(i - 1, 6).Value
' Jämför värdena för att avgöra om det är ett stigande tal
If aktuelltTal > forrigeTal Then
strA = strA & forrigeTal & "-"
tidigare = aktuelltTal
Else: If strA <> "" Then ws.Cells(i - 1, 8) = strA & tidigare
strA = ""
End If
Next i
Call ExtraheraFallandeFöljder
End Sub
Sub ExtraheraFallandeFöljder()
Dim ws As Worksheet
Dim i As Long
Dim stigande As Long
Dim strA As String, tidigare As String
' Ange arbetsbladet där tabellen finns
Set ws = ThisWorkbook.Sheets("StigandeFallande") ' Byt ut "DittArbetsbladNamn" mot det faktiska namnet
' Loopa igenom varje rad i tabellen
For i = 4 To 11
If i = 11 Then
ws.Cells(i, 6) = 1000
End If
' Hämta aktuellt tal från kolumn F
Dim aktuelltTal As Double
aktuelltTal = ws.Cells(i, 6).Value
' Hämta föregående tal från kolumn F
Dim forrigeTal As Double
forrigeTal = ws.Cells(i - 1, 6).Value
' Jämför värdena för att avgöra om det är ett fallande tal
If aktuelltTal < forrigeTal Then
strA = strA & forrigeTal & "-"
tidigare = aktuelltTal
Else: If strA <> "" Then ws.Cells(i - 1, 9) = strA & tidigare
strA = ""
End If
Next i
ws.Cells(11, 6) = ""
End Sub