Avatar billede svla Mester
11. november 2014 - 13:05 Der er 5 kommentarer og
1 løsning

Indlæse data i arrys, og tjekke om data i en variabel er sammenlignlig med indlæste data i arrys

Hej
Vil gerne have lidt hjælp til VBA kode.

Jeg har et stort Excel ark til arbejdsplanlægning.
På arket har jeg 3 områder, celler med 2 cifrede koder, som jeg gerne vil have læs ind i et arrys
Område 1:  K127:K166
Område 2:  K167:K206
Område 3:  K207:k226
- Er der nogen som lige kan hjælpe med en kode til oprettelse af arrys og indlæsning af områderne i arrys ?

Når områderne er indlæst i arrys, kan det så lade sig gøre at tjekke om en bestemt kode er tilstede i arrys, hvis koden er lagt i en variabel.
- Er der nogen som lige kan hjælpe med en lille kode til det ?

Overnævnte skal indgå i en større VBA kode, men lige det med arrys er jeg ikke stærk i.

Håber lige nogen kan hjælpe.

Bruger Windows 7 pro og Office 2010
Avatar billede kabbak Professor
11. november 2014 - 13:43 #1
Public Sub test()
    Dim område1 As Variant, område2 As Variant, område3 As Variant, FindMig As Integer
    FindMig = 22
    område1 = Worksheets("Ark1").Range("K127: K166")
    område2 = Worksheets("Ark1").Range("K167: K206")
    område3 = Worksheets("Ark1").Range("K207: k226")
    MsgBox Sog(område1, FindMig, 1)
    MsgBox Sog(område2, FindMig, 2)
    MsgBox Sog(område3, FindMig, 3)

End Sub

Public Function Sog(Hvor, hvad, omrade) As String
    For i = 1 To UBound(Hvor)
        If Hvor(i, 1) = hvad Then
            Sog = "Fundet i område " & omrade
            Exit Function
        End If
    Next
    Sog = "Ikke fundet i område " & omrade
End Function
Avatar billede svla Mester
11. november 2014 - 14:12 #2
Hej
Tak for dit svar.

Jeg har lige oprette et prøveark, og sat din kode ind, det ser fint ud, men makroen melder fejl i din Funtcion med fejlen "Variable not defined", og så markerer den "i" i første linie.

Skulle jeg have tilrettet noget i din function kode ?
Avatar billede kabbak Professor
11. november 2014 - 15:08 #3
Public Function Sog(Hvor, hvad, omrade) As String
Dim I as integer
    For i = 1 To UBound(Hvor)
        If Hvor(i, 1) = hvad Then
            Sog = "Fundet i område " & omrade
            Exit Function
        End If
    Next
    Sog = "Ikke fundet i område " & omrade
End Function
Avatar billede svla Mester
11. november 2014 - 17:48 #4
Hej igen
Har tjekket din nye kode, den fungerer rigtig fint, jeg forstod ikke hvorfor der i funktionens første linje var skrevet "Hvor", "Hvad", og "område", men pludselig fandt jeg forbindelsen i linjen med Msgbox, så nu forstår jeg sammenhængen.

- Jeg havde forventet en længere kode for og få løst problemet, nu skal koden lige tilrettes i forbindelse med en større kode på mit ark, med det skal jeg nok finde ud af senere.

Tusind tak for hjælpen, jeg har virkelig rodet meget med sagen inden jeg søgte hjælp på siden her.

Læg lige et svar
Avatar billede kabbak Professor
11. november 2014 - 17:52 #5
;-))
Avatar billede svla Mester
11. november 2014 - 18:10 #6
Point erdine
Tak for hurtig hjælp
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