Avatar billede tjensen Nybegynder
12. december 2007 - 21:33 Der er 12 kommentarer og
1 løsning

If in row.

Hej,

Hvordan tester man If in row?

Er igang med at lave det således, men virker meget tungt!

            NotaFlag = False
            Sheets("DS").Select
            r = .Cells(Rows.Count, 1).End(xlUp).Row
            Set NotaRows = Range(.Cells(2, 2), .Cells(r, 2))
            For Each c In NotaRows
                If c = ref Then
                    NotaFlag = True
                End If
            Next
Avatar billede kabbak Professor
12. december 2007 - 21:37 #1
skal den ikke hoppe ud når NotaFlag bliver true ??
Hvor mange rækker ??
Avatar billede kabbak Professor
12. december 2007 - 21:40 #2
Man kan putte det i en variabel

Dim NotaRows as variant, I as long
NotaFlag = False
            Sheets("DS").Select
            r = .Cells(Rows.Count, 1).End(xlUp).Row
            NotaRows = Range(.Cells(2, 2), .Cells(r, 2))
            For I = 1 to ubound(NotaRows)
                If NotaRows(i,1) = ref Then
                    NotaFlag = True
                End If
            Next
Avatar billede tjensen Nybegynder
12. december 2007 - 21:46 #3
Det kan variere hvor mange der er, lige pt er der over 200.

Problemet er at jeg har variablen 'ref' som jeg skal vide om eksistere i kolone c.
Hvis den gør skal jeg ha den til at skrive 'foo' ellers 'bar'.

Det sidste havde jeg tænkte mig at gøre ud fra en simpel if på Notaflag.
Bedre løsninger modtages gerne.
Avatar billede kabbak Professor
12. december 2007 - 21:53 #4
"Hvis den gør skal jeg ha den til at skrive 'foo' ellers 'bar'."

er det i en msgbox, den skal gøre det
Avatar billede tjensen Nybegynder
12. december 2007 - 21:57 #5
ej i en cell.

            If NotaFlag = True Then
                Cells(RO, 15) = "foo"
            Else
                Cells(RO, 15) = "bar"
            End
Avatar billede tjensen Nybegynder
12. december 2007 - 21:58 #6
er normalt php mand, så det her VBA er lidt fremmet.
Men begynder at være mere og mere spændende. MANGE muligheder.
Avatar billede excelent Ekspert
12. december 2007 - 22:26 #7
I din kode tester du for antal rækker i kolonne A (r)
derefter tester du i kolonne B
Senere skriver du den skal findes i kolonne C

mit gæt er så kolonne C ellers ret

Sub xFind()
Set sh = Sheets("DS"): r = sh.Cells(65500, "C").End(xlUp).Row
If Application.CountIf(sh.Range("C1:C" & r), ref) Then
sh.Cells(RO, "O") = "foo"
Else
sh.Cells(RO, "O") = "bar"
End If
End Sub
Avatar billede tjensen Nybegynder
12. december 2007 - 22:45 #8
Ja, noget er der helt galt.

Her er den som jeg har rettet den til:

Set sh = Sheets("DS"): r = sh.Cells(65500, "C").End(xlUp).Row
If Application.CountIf(sh.Range("C1:C" & r), ref) Then
  Cells(RO, 15) = "foo"
Else
  Cells(RO, 15) = "bar"
End If

Men eksistere Ref i kolone C skriver den alligevel bar.
Avatar billede excelent Ekspert
12. december 2007 - 22:51 #9
hvilken værdi har ref ?
noget tyder på de ikke er helt ens
Avatar billede tjensen Nybegynder
12. december 2007 - 22:56 #10
Undskyld, det virker, min ref der var forkert. Den hed allokoring istedet. Stupied me!
Avatar billede excelent Ekspert
12. december 2007 - 22:57 #11
ok shit happens :-)
Avatar billede excelent Ekspert
30. december 2007 - 14:21 #12
husk lige at lukke
marker box med navn og klik accepter
Avatar billede tjensen Nybegynder
30. december 2007 - 15:55 #13
Beklager, selvfølgelig skal den lukkes.
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