Avatar billede dr_nielsen Nybegynder
12. januar 2003 - 23:11 Der er 9 kommentarer og
1 løsning

VBA loop gennem rækker i et regneark

loop gennem rækker i et regneark, og teste på værdier i specifikke celler

Hvordan gør jeg det?
Avatar billede kedde65 Praktikant
12. januar 2003 - 23:47 #1
Sub tmp()
    Dim item As Range
   
    For Each item In Range("A1:b10")
        MsgBox item
    Next
End Sub

Denne kode løber igennen alle værdierne i et excel ark.

VH CK
Avatar billede kabbak Professor
13. januar 2003 - 08:08 #2
Private Sub CommandButton1_Click()
Worksheets("Sheetname").Activate

R = 1
for C = 1 To 10 ' antal kolonner der skal gennemsøges
Do Until Worksheets("Sheetname").Cells(C, R) = ""
' her kan du fange værdien i cellen
if Cells(C, R) = " et eller andet
' gør således
else
' gør noget andet
end if
  C = C + 1
  Loop
next
end sub
Avatar billede kabbak Professor
13. januar 2003 - 08:12 #3
Fejl dette skal ændres:

C = 1
for R = 1 To 10 ' antal kolonner der skal gennemsøges

og dette
  Loop
C = 1
next
Avatar billede dr_nielsen Nybegynder
13. januar 2003 - 11:28 #4
/Kabbak, det lyder som noget jeg kan bruge.

Jeg har lige et ekstra spm:

De værdier jeg finder ved test skal liste i rækker under hinanden i et andet ark i samme workbook.

Altså jeg har en stor liste, som jeg søger i for at lave en lille liste der svarer til mine kriterier

Er det det til at forstå
Avatar billede kabbak Professor
13. januar 2003 - 13:16 #5
Sub Find()
Worksheets("Ark1").Activate
C = 1 ' rækken
R = 1 ' kolonnen
For R = 1 To 10 ' antal kolonner der skal gennemsøge
Do Until Worksheets("Ark1").Cells(C, R) = ""
' her kan du fange værdien i cellen
If Cells(C, R) = "test" Then
Worksheets("Ark2").Activate
A = 1 ' Kolonne i resultatarket
Do Until Worksheets("Ark2").Cells(A, 1) = ""
A = A + 1
Loop
Worksheets("Ark2").Cells(A, 1).Value = Worksheets("Ark1").Cells(C, R).Value
Worksheets("Ark1").Activate
Else
' gør noget andet
End If
C = C + 1
Loop
C = 1
Next
End Sub

I denne søger den på ordet 'test' som den overfører til 'Ark2'.
den søger på kolonne 1 til 10, men stopper hvis den møder en tom celle og hopper til næste kolonne.
Avatar billede dr_nielsen Nybegynder
13. januar 2003 - 14:33 #6
Laves her en ny liste over de rækker der opfyldte kriterierne?
Avatar billede kabbak Professor
13. januar 2003 - 14:53 #7
vil du have hele rækken over ført til det andet ark, hvor kriteriet er opfyldt.

1. Så skal jeg vide hvor mange kolonner der er værdier i som skal overføres.
2. Hvilken kolonne skal værdierne findes i

I øjeblikket overføres kun den søgte celles værdi.
Avatar billede dr_nielsen Nybegynder
13. januar 2003 - 15:07 #8
I øjeblikket overføres kun den søgte celles værdi.:
Det er som sådan også ok, bare at alle tilfældene hvor værdien optræder bliver listet i rækker under hinanden i at andet ark

eks på destinationsark:

Rigtig værdi 1
Rigtig værdi 2
Rigtig værdi n
Avatar billede kabbak Professor
13. januar 2003 - 15:13 #9
Alle fundne værdier, bliver i øjeblikket, overført til 'Ark2' kolonne 'A' og under hinanden.
Avatar billede dr_nielsen Nybegynder
13. januar 2003 - 15:21 #10
perfekt
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
Kurser inden for grundlæggende programmering

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