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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.