Avatar billede moba Nybegynder
22. juli 2004 - 10:53 Der er 12 kommentarer og
1 løsning

cells(1,1).value = værdi

Hej
I en forløkke kører jeg en kolonne igennem for værdier i de forskellige rækkerceller, og sammenligner disse værdier med et tal eks
For i = 1 to 100
if worksheets("ark1").cells(i,1).value = txttal then
msgbox "Her er dit tal " & worksheets("ark1").cells(i,1).address
end if
next

Problemet ligger i at der også kan være indeholdt strenge i cellerne, og af mystiske grunde bliver disse strenge "sande" i min if sætning.

Any clues.
Avatar billede bak Forsker
22. juli 2004 - 11:04 #1
Hvordan får du fyldt et tal i variablen txttal ?
Avatar billede moba Nybegynder
22. juli 2004 - 11:18 #2
Txttal kommer fra en formular. Problemet ligger vel i noget mismatch mellem string og integer, eller? Måske skal jeg konvertere min cells(i,1).value om til integer, men det vil vel give en fejl hvis value indeholder en tekststreng.
Avatar billede bak Forsker
22. juli 2004 - 11:23 #3
En formular (tekstboks) returnerer en streng.
Hvis txttal en dimmet som var kan du gøre sådan her


txttal = CSng(txttal)
With Worksheets("ark1")
    For i = 1 To 100
        If .Cells(i, 1).Value = txttal Then
            MsgBox "Her er dit tal " & .Cells(i, 1).Address
        End If
    Next
End With
Avatar billede moba Nybegynder
22. juli 2004 - 11:45 #4
hvis jeg ikke bruger txttal men i stedet siger
if .cell(i,1).value = 1 or 2 or 3 or 4 or 5 then
msgbox "Her er dit tal " & .Cells(i, 1).Address
end if

så bliver den tekst som står i celle (2,1) også sand i if sætningen.
I cellen står der "reference til hovedmenu"
Hvorfor?
Avatar billede moba Nybegynder
22. juli 2004 - 13:11 #5
hvis jeg ikke bruger "or" men laver 5 if sætninger virker det fint???
Send et svar, jeg lukker dette spørgsmål men er stadig lidt forvirret :-)
Morten
Avatar billede hultgreen Nybegynder
29. juli 2004 - 08:33 #6
Du kan checke om det er et tal først:

For i = 1 To 100
If IsNumeric(Worksheets("ark1").Cells(i, 1).Value) Then
    If Worksheets("ark1").Cells(i, 1).Value = txttal Then
        MsgBox "Her er dit tal " & Worksheets("ark1").Cells(i, 1).Address
    End If
End If
Next


Venligst
John
Avatar billede sjap Praktikant
29. juli 2004 - 10:54 #7
Du kan ikke skrive

if .cell(i,1).value = 1 or 2 or 3 or 4 or 5 then

den korrekte brug af OR er

if .cell(i,1).value = 1 or .cell(i,1).value = 2 or .cell(i,1).value = 3 or .cell(i,1).value = 4 or .cell(i,1).value = 5 then
Avatar billede sjap Praktikant
29. juli 2004 - 11:01 #8
Ok, så har jeg vist også kopieret for meget. Der skal vist retteligt stå:

If .Cells(i, 1).Value = 1 Or .Cells(i, 1).Value = 2 Or .Cells(i, 1).Value = 3 Or .Cells(i, 1).Value = 4 Or .Cells(i, 1).Value = 5 Then
Avatar billede bak Forsker
29. juli 2004 - 13:06 #9
Eller
Select Case .cell(i,1).value
        Case "1", "2", "3", "4", "5", 1 To 5: MsgBox "ok"
        Case Else: MsgBox "Ikke ok"
End Select
Avatar billede sjap Praktikant
29. juli 2004 - 13:09 #10
Hej 2bak
Fik du ikke lige lavet den samme fejl som mig? (der mangler - så vidt jeg husker - et lillebitte s).
Avatar billede bak Forsker
29. juli 2004 - 14:19 #11
hehe jo sjap, jeg kopierede nemlig fra dig....
Avatar billede moba Nybegynder
02. august 2004 - 21:33 #12
Tak for guys, det er vist sjap der skal krediteres, da mit spørgsmål/forundren specifikt gik på hvorfor if ikke virkede korrekt med or.
Avatar billede sjap Praktikant
02. august 2004 - 22:46 #13
Det modtager jeg da gerne, men for min skyld kan du også godt fordele lidt til de andre for inspirerende forslag - men det bestemmer du jo selv. :0)
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

IT-JOB

Capgemini Danmark A/S

Microsoft AI Solution Architect

Politiets Efterretningstjeneste

Teamleder til Center for CNE-operationer

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer