Gå til innhold

[Løst] Excel 2010 VBA Loop For i = 1 to, og For Each


Anbefalte innlegg

Hei.

 

Jeg har 2 kolonner med tall. C og D

 

Hvis summen av disse ikke er lik skal tallene i kolonne D trekke i fra 1 av den høyeste verdien i kolonne D eller legge til 1 på den laveste verdien til summen av tallene er lik summen av Kolonne C

 

Eksempel

Summen av kolonne C = 250 (TheValue)

Summen av Kolonne D = 260 (TheOtherValue)

 

Kodesnipp

Case Is > TheValue
       
       
'            MsgBox "theothervalue er Høyere enn thevalue"
               
            For i = 1 To TheOtherValue - TheValue
                For Each Cel In TheRng
                    If Cel.Value > TheHighestValue Then
                        TheHighestValue = Cel.Value
                        TheHighestRange = Cel.Address
                        MsgBox TheHighestValue
                    End If
                Next Cel
                Sheets(1).Range("" & TheHighestRange & "").Value = Sheets    (1).Range("" & TheHighestRange & "").Value - 1
            Next i

Jeg trodde at den skulle gå igjennom alt 10 ganger. Men det kjører igjennom for each loopen 10 ganger, for så å trekke i fra 10 ganger av den høyeste verdien.

 

Så hvis den høyeste verdien er 5 vil den ende opp med -5, jeg vil jo at den søker igjennom rangen 10 ganger og trekker i fra den høyeste i "en" loop.

 

Noen Tips?

 

Bare si i fra hvis forklaringen trenger utdypning.

 

Mvh

 

Torbjørn

Endret av Bigelk
Lenke til kommentar
Videoannonse
Annonse

Da var den løst

 Case Is > TheValue
       
'            MsgBox "theothervalue er Høyere enn thevalue"
               
            For i = 1 To TheOtherValue - TheValue
                For Each Cel In TheRng
                    If Cel.Value > TheHighestValue Then
                        TheHighestValue = Cel.Value
                        TheHighestRange = Cel.Address
                    End If
                Next Cel
                Sheets(1).Range("" & TheHighestRange & "").Value = Sheets(1).Range("" & TheHighestRange & "").Value - 1
                TheHighestValue = Sheets(1).Range("" & TheHighestRange & "").Value
            Next i

Jeg glemte å oppdatere den høyeste verdien.

 

Mvh

 

Torbjørn

Endret av Bigelk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...