Texazz Skrevet 7. november 2014 Del Skrevet 7. november 2014 (endret) Hei! Jeg har en løkke som går fra i=3:8760, hvor i er nummer på raden. I noen tilfeller (definert av en if-setning) ønsker jeg å sette AEi til å inneholde følgende formel: =(Gi-Si*EXP((Gi-Si)/ACi))/(1-EXP((Gi-Si)/ACi)) Jeg har prøvd følgende VBA-kode, men den funker ikke: Range("AE" & i).Formula = "=((""G"" & i)-(""S"" & i)*EXP(((""G"" % i)-(""S"" & i))/(""AC"" & i)))/(1-EXP(((""G"" & i)-(""S"" &i))/(""AC"" & i)))" Noen som kan hjelpe en n00b? ENDRET:Løsningen er: "=(G" & i & "-S" & i & ")*EXP((G" & i & "-S" & i & ")/AC" & i & ")/(1-EXP((G" & i & "-S" & i & ")/AC" & i & "))" Endret 7. november 2014 av Texazz Lenke til kommentar
Harald Staff Skrevet 8. november 2014 Del Skrevet 8. november 2014 Fint. Å bygge strenger i VBA er ikke alltid veldig enkelt. Men la meg gi deg et tips allikevel. Spill inn en makro mens du setter inn formelen i en celle. Opptaket spiller inn formelen i R1C1-format. Det fine med en R1C1-formel er at det ikke spiller noen verdens rolle HVOR du setter den inn. Såvidt jeg kan lese av eksemplet ditt vil dette virke for alle rader i : Range("AE" & i).FormulaR1C1 = _ "=(RC[-24]-RC[-12])*EXP((RC[-24]-RC[-12])/RC[-2])/(1-EXP((RC[-24]-RC[-12])/RC[-2]))" Beste hilsen Harald Lenke til kommentar
Texazz Skrevet 9. november 2014 Forfatter Del Skrevet 9. november 2014 Fint. Å bygge strenger i VBA er ikke alltid veldig enkelt. Men la meg gi deg et tips allikevel. Spill inn en makro mens du setter inn formelen i en celle. Opptaket spiller inn formelen i R1C1-format. Det fine med en R1C1-formel er at det ikke spiller noen verdens rolle HVOR du setter den inn. Såvidt jeg kan lese av eksemplet ditt vil dette virke for alle rader i : Range("AE" & i).FormulaR1C1 = _ "=(RC[-24]-RC[-12])*EXP((RC[-24]-RC[-12])/RC[-2])/(1-EXP((RC[-24]-RC[-12])/RC[-2]))" Beste hilsen Harald Takk for tilbakemelding. Er det slik at R1C1-metoden bruker en celle som referanse, og flytter seg x celler og y celler bort fra den cellen (i dette tilfellet AE)? Lenke til kommentar
Harald Staff Skrevet 9. november 2014 Del Skrevet 9. november 2014 (endret) Bra tenkt. Referansen er cella formelen står i. R betyr "samme rad som denne formelen". R[-1] betyr raden over og R[1] betyr raden under. R1 betyr rad 1, altså samme som $1. C betyr samme kolonne som denne formelen. C[-1] betyr en kolonne til venstre og C[1] betyr en kolonne til høyre. C1 betyr kolonne 1, altså $A. =RC[-1] betyr altså "samme som cella rett til venstre". R1C1 betyr $A$1. Dette er som sagt utrolig praktisk når kode skal sette inn formler. Denne =SUM(R1C:R[-1]C) betyr "summen av alle cellene over", uansett hvor du setter den inn (unntatt i rad 1, da feiler den med sirkelreferanse). Såvidt jeg vet regner Excel internt i R1C1-format. A1-addresseringen er et lag utenpå for lesevennlighetens skyld. Man kan sette Excel i ren R1C1-modus via Alternativer/Options. Dette valget følger alle filer du lagrer når du bruker dette modus, og en annen bruker av denne filen vil si "bokstavene øverst har blitt til tall" etter at filen er åpnet. Beste hilsen Harald (Edit noen skrivefeiler) Endret 9. november 2014 av Harald Staff Lenke til kommentar
Texazz Skrevet 9. november 2014 Forfatter Del Skrevet 9. november 2014 Takk for gode svar, dette kan komme godt med seinere . Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå