Avatar billede hoell Nybegynder
29. marts 2006 - 17:18 Der er 3 kommentarer og
1 løsning

Data ind i array

Hej Jeg har følgende stump kode

    Dim ProductNumber(), AntalEns As Integer
        AntalEnsSkabe = 0
        If Worksheets("Hoved ark").Range("L" & i & "") = BrandName And Worksheets("Hoved ark").Range("C" & i & "").Value = "S " & Model & "" Then
            AntalEns = AntalEns + 1
            Modelname = Worksheets("Hoved ark").Range("B" & i & "").Value
            ProductNumber(i) = Worksheets("Hoved ark").Range("D" & i & "").Value
        End If
    Next i

det kniber, for den melder fejl i linjen, hvor jeg trode den smed værdien af celle D"i" ind. Men der er "mismatch". Der smides tekst ind i array. Kigger ikke igen før i morgen.

På forhånd tak
Avatar billede kabbak Professor
30. marts 2006 - 00:15 #1
Nu ved jeg ikke hvor du får I fra, eller om du kender størrelsen på I fra starten.
Hvis du kender størrelsen fra starten, hvad i tæller op til, skal du dimme den

Dim linien skal være uden for løkken, normalt sættes den øverst i koden.
Dim ProductNumber(200)as variant, AntalEns As Integer

Hvis du ikke kender i fra starten, skal du redimme ProductNumber

Dim ProductNumber() As Variant, AntalEns As Integer

for I = 1 to osv

      AntalEnsSkabe = 0
        If Worksheets("Hoved ark").Range("L" & i & "") = BrandName And Worksheets("Hoved ark").Range("C" & i & "").Value = "S " & Model & "" Then
            AntalEns = AntalEns + 1
            Modelname = Worksheets("Hoved ark").Range("B" & i & "").Value
ReDim Preserve ProductNumber(i)
            ProductNumber(i) = Worksheets("Hoved ark").Range("D" & i & "").Value
        End If
    Next i
Avatar billede hoell Nybegynder
30. marts 2006 - 07:38 #2
Super kabbak

Men giver det ikke en array med f.eks. 1200 værdier, selv om jeg, idet jeg har IF-sætningen, egentlig kun skulle have haft en værdi lig AntalEns. Men hvis jeg prøver at sætte AntalEns ind får jeg "Subscript out of range".

Og ja jeg har flyttet AntalEns uden for loopet:
Dim ProductNumber() As Variant, AntalEns As Integer, i As Integer
AntalEns = 0
For i = 4 To 1200
    If Worksheets("Hoved ark").Range("L" & i & "") = Brandname And Worksheets("Hoved ark").Range("C" & i & "").Value = "S " & Model & "" Then
        AntalEns = AntalEns + 1
        Modelname = Worksheets("Hoved ark").Range("B" & i & "").Value
        ReDim Preserve ProductNumber(AntalEns)
        ProductNumber(i) = Worksheets("Hoved ark").Range("D" & i & "").Value
    End If
Next i
Besked1 = MsgBox("antal beskeder = " & AntalEns & "", vbOKOnly)
Avatar billede kabbak Professor
30. marts 2006 - 08:26 #3
Du skal ikke bruge I når det er antalens du dimmer

ReDim Preserve ProductNumber(AntalEns)
        ProductNumber(AntalEns) = Worksheets("Hoved ark").Range("D" & i & "").Value
Avatar billede hoell Nybegynder
30. marts 2006 - 09:15 #4
Arrgh fjols, ja altså mig ;-)

Tak for hjælpen.
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