Jeg har en kolonne med en masse data, her vil jeg finde den mindste værdi, hvorefter celleværdien i en anden kolonne men i samme række som min-værdien skal udskrives et andet sted i arket. F.eks.
1 10
2 5 <-
3 7
Her er det helt klart 5, der er mindst, så vil jeg have 2-tallet skrevet i en helt tredie kolonne. Hvordan får jeg VBA til at gøre det?
Pernille
Du er nød til at søge kolonnen igennem linie for linie, idet du hele tiden husker min værdi i en variabel og den linie du fandt den i, fx:
min_værdi=linie(1), lin_fundet=1
for i=2 to antal_linier
..if linie(i)(kol2) < min_værdi then
....lin_fundet=i
....min_værdi=linie(i)(kol2)
..end if
next i
'Nu indeholder linie_fundet index'et på den linie som indeholder minste værdi.
'Og vi kan hente ønsket værdi til udskrift:
print_værdi=linie(lin_fundet)(kol1)
NB: Det gælder dog ikke hvis der ikke er nogen linier, antal_linier=0, det bliver du nød til at test på først og undgå initialiseringen og løkken bliver udført overhovedet, da det jo ville give fejl.
Princippet lader sig overføre til andre former af date-lagring hvor du så evt må gemme kolonne 1's værdi i en variabel, altså hvis det ikke kan lade sig gøre at benytte et index på linierne men kun kan lade sig gøre at læse linierne sekventielt, fx fra en fil (det er ihvertilfælde mere effektivt). Eller måske er data representeret i to tabeller, en for hver kolonne men pricippet er altså det samme, index'et = linie_nummer søges op.[Redigeret d. 13/08-02 13:33:32 af Martin Klausen Andersen]