Jag har ett formulär med två knappar, i den första ska jag skapa en array och när jag trycker på knapp 2 ska värdena skrivas ut i formuläret. Det fungerar om jag lägger hela koden i knapp ett, men lägger jag koden i knapp två hittar den inte listan. Hejsan! Problemet är att den inte kan hitta listan när koden ligger i knapp 2, men i knapp ett hittar den listan. Skriver du koden exakt likadant oavsett vilken knapp du lägger den i? HejArray
Koden i modulen är :
option Explicit
Option Base 1
Public Lista(1 To 5) As Variant
Public Function Listsumma(arr() As Integer) As Integer
Dim summa As Integer, nr As Integer
summa = 0
For nr = LBound(arr) To UBound(arr)
summa = summa + arr(nr)
Next nr
Listsumma = summa
End Function
Public Function Max(arr() As Integer) As Integer
Dim i As Integer
Dim maxi As Integer
maxi = arr(LBound(arr))
For i = LBound(arr) + 1 To UBound(arr)
If arr(i) > maxi Then maxi = arr(i)
Next i
Max = maxi
End Function
Public Function Min(arr() As Integer) As Integer
Dim i As Integer
Dim mini As Integer
mini = arr(LBound(arr))
For i = LBound(arr) + 1 To UBound(arr)
If arr(i) < mini Then mini = arr(i)
Next i
Min = mini
End Function
Public Function PosTal(arr() As Integer) As Integer
Dim antal As Integer, i As Integer
antal = 0
For i = LBound(arr) To UBound(arr)
If antal >= 0 Then
antal = antal + 1
End If
Next i
PosTal = antal
End Function
Och koden för knapparna:
Option Explicit
Private Sub Command1_Click()
Dim visa As String
Dim i As Integer
Dim titel As String
visa = "Skriv in Lista"
For i = 1 To 5
titel = "Index " & i
Lista(i) = InputBox(visa, titel)
Next i
End Sub
Private Sub Command2_Click()
Dim pos As Integer
Dim mini As Integer
Dim maxi As Integer
Dim sum As Integer
pos = PosTal(Lista)
Label1.Caption = pos
sum = Listsumma(Lista)
Label2.Caption = sum
maxi = Max(Lista)
Label3.Caption = maxi
mini = Min(Lista)
Label4.Caption = mini
End SubSv: Array
Blir inte klok på vad du egentligen vill ha ut av det här, men du försöker hämta ett integervärde från Lista (som är variant och då kan innehålla vad som helst) till dina funktioner.
Ett tips: gör indrag i din kod, så hittar du bättre.
Lycka till.
/EESv: Array
/MartinSv: Array
Har testat att flytta runt och fundera över hur du skulle ha kunnat få det här att fungera, men jag är ledsen att erkänna att jag inte alls förstår det. Du måste ha skrivit på nåt annat sätt då när det fungerade. Försök spåra dina ändringar bakåt så kanske det ordnar sig.
/EESv: Array
Den där arrayen arr ser man inte till ,har inte den alltid
LowerBound 1 eftersom du använder Option Base 1
Så här bör i allafall första raderna i BasModulen se ut
Option Base 1
Public Lista(5) As String
Finns fler frågetecken men du får återkomma
mvh
Sven