---
title: "problem med att skapa en array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/72014-problem-med-att-skapa-en-array"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "ampy"
published: "2003-03-24T13:12:03.000Z"
updated: "2003-03-24T15:00:43.000Z"
replies: 7
views: 304
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/72014-problem-med-att-skapa-en-array"
---

# problem med att skapa en array

## #1 — ampy, 2003-03-24T13:12Z

Jag har denna kod i en for-loop:

```
                Dim arrtop As Variant
                [B]arrtop(0, i) = user_id[/B]
                arrtop(1, i) = summa
```

Felmeddelandet jag får är:
Type mismatch

på raden med fetstil.

Vad kan det vara för fel?  :q

Permalänk: https://www.webforum.nu/p/72014

## #2 — Engine^, 2003-03-24T13:22Z

```
Dim arrtop[b]()[/b] As Variant
```

Permalänk: https://www.webforum.nu/p/989746

## #3 — ampy, 2003-03-24T13:23Z

Nu får jag:
Subscript out of range.

på samma rad.

Permalänk: https://www.webforum.nu/p/989747

## #4 — Engine^, 2003-03-24T13:43Z

Vad är *i*?

```
Private Const MAX_VALUE_1 As Long = 10
Private Const MAX_VALUE_2 As Long = 10

Dim arrtop(MAX_VALUE_1, MAX_VALUE_2) As Variant
```

Det jag tänkte påpeka är att innan du använder din array, så bör du ha den korrekt Dim:ad ([How to Determine if an Array has been Dimensioned](http://www.mvps.org/vbnet/code/helpers/isbounded.htm))

Permalänk: https://www.webforum.nu/p/989768

## #5 — ampy, 2003-03-24T14:36Z

*i* innehåller värden från 0 och uppåt. Du kanske missade att koden ligger i en for-loop?

Vad menar du med korrekt dimad?

Är den inte det?  :q

Permalänk: https://www.webforum.nu/p/989805

## #6 — Engine^, 2003-03-24T14:46Z

Subscript out of range innebär att du försöker sätta ett värde på index i din array som är större än UBound(arrtop). Så får man inte göra, eftersom då skulle operativet haverera pga slaskskrivningar i minnet.

```
Dim arrtop() As Variant
Dim iMax As Long

iMax = [i]maxvärdet som du ska använda i din loop[/i]

ReDim arrtop(2, iMax + 1) As Variant

For i = 0 To iMax
  .
  .
  .

  arrtop(0, i) = user_id
  arrtop(1, i) = summa
Next i
```

Det kanske beskriver lite bättre vad jag menar ;)

Permalänk: https://www.webforum.nu/p/989816

## #7 — ampy, 2003-03-24T14:53Z

Tackar! 

Fungerar nu. :)

En liten annan sak också bara:
Såg att du skrev *next i*

Jag brukar bara skriva *next*

Är det ngn skillnad?

Permalänk: https://www.webforum.nu/p/989821

## #8 — @nders, 2003-03-24T15:00Z

Om du har nästlade loopar är det bra att man kan vara tydlig i sin kod genom att specificera vilken av looparna det är du vänder. Det behövs (enligt min uppfattning) inte, men det tillhör (även det IMHO) god programmerarsed.

Mvh,

Permalänk: https://www.webforum.nu/p/989826

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/72014-problem-med-att-skapa-en-array
