04. november 2008 - 22:24Der er
15 kommentarer og 1 løsning
Makro _ Reference til kolonne i loop
Hej.
Jeg er igang med at lave en makro til en ække udregninger i excel. Jeg har problemer med referencen til kolonnens nummer. I forbindelse med referencen til kolonnen skal jeg bruge en variable.
Det fungerer for rækken (hvor Y er variablen): Range("Q23").Value = Range("HA" & Y).Value
Men altså ikke for kolonnen (hvor X er variablen): Range("Q24").Value = Range(X & "1").Value
Ifølge en kammerat kan problemet være at "A+1 ≠ B" og at variablen evt. skal konverteres for at fungere. Men vi ved ikke hvordan det skal gøres.
Jeg kan bedst holde med det første forslag, husk at x skal referere til kolonnen(!) ikke rækken det kan jeg godt ;) ( Range("Q23").Value = Range("HA" & Y).Value )
Men det virker ikke
Hvis det virkede kunne jeg også have brugt følgende linie i den indre loop Cells(X & Y).Value = Range("S27").Value (i stedet for den deaktiverede). Men det virker heller ikke.
Opsummeret er det altså referencen til >>Kolonner<< der volder mig problemer. :(
og følgende Cells(X & Y).Value = Range("S27").Value skulle se sådan ud Cells(Y,X).Value = Range("S27").Value under forudsætning af at X er kolonne og Y række
Det der "&" fik nåede ellers at ødelægge mange celler hulter til bulter over hele arket! Og med genstart til følge undervejs :( -jeg var så optaget af det at jeg ikke så dit svar før for et øjeblik siden(...)
Tak, det var jeg ikke opmærksom på. Men nu - Måske kan du hjælpe mig en ekstre gang inden... :)
Mit program afgiver nu en masse resultater fordelt i området: DB2:DE157
Heraf vil jeg gerne finde det største tal, >>men<< referere til kolonnens overskrift. Det vil være et af DB1:DE1. (fx =DE1 hvis det største tal er DE57)
=største()
Akkurat tilsvarende ønsker en, i en ny celle, hvor jeg referere til Rækkens overskrift Det vil tilsvarende være et af DA2:DA157.(fx =DA57 hvis det største tal er DE57)
Jeg ved dette vedrører for såvidt ikke længere makroer, hvis du synes jeg skal oprette en ny, gør jeg det i stedet.
Function kol(rng As Range, valg As Long) If valg = 1 Then kol = Cells(1, rng.Find(WorksheetFunction.Max(rng), LookIn:=xlValues).Column) If valg = 2 Then kol = Cells(rng.Find(WorksheetFunction.Max(rng), LookIn:=xlValues).Row, "DA") End Function
=kol(DB2:DE157;1) - returnerer værdi i række 1 i kolonne med største tal
=kol(DB2:DE157;2) - returnerer værdi i kolonne DA fra række med største tal
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.