RulleRimfrost Skrevet 26. juni 2007 Del Skrevet 26. juni 2007 Hei Jeg trenger å fylle inn formler i et Excel-ark som henter noe data fra en database. Ved arkets change-event fyrer jeg først av en funksjon som setter inn riktig formel øverst i de aktuell kolonnene. Public Function SettFormel() Range("v9").Formula = "test" Range("w9").Formula = "=HVIS(K9='';'';(K9-L9) &' / '& M9)" Range("x9").Formula = "=HVIS(J9="";"";J9-B$1)" Range("y9").Formula = "=HVIS(C9="";"";C9*X9)" Range("z9").Formula = "=HVIS(O9="";"";HVIS(O9=1;0;F9))" Range("aa9").Formula = "=HVIS(O9="";"";HVIS(O9=1;F9;0))" End Function Etter dette kjører onChange-eventen en autofill til end of data. Problem : v9 (test-kolonne med kun text) går in som varm kniv, men funksjonen nekter å sette inn formler, uansett om jeg bruker " eller '. Ser ut til at VBA ikke liker det når jeg bruker " mens excel nekter å ta i mot '. Noen som husker noen triks her ? Lenke til kommentar
GeirGrusom Skrevet 26. juni 2007 Del Skrevet 26. juni 2007 HeiJeg trenger å fylle inn formler i et Excel-ark som henter noe data fra en database. Ved arkets change-event fyrer jeg først av en funksjon som setter inn riktig formel øverst i de aktuell kolonnene. Public Function SettFormel() Range("v9").Formula = "test" Range("w9").Formula = "=HVIS(K9='';'';(K9-L9) &' / '& M9)" Range("x9").Formula = "=HVIS(J9="";"";J9-B$1)" Range("y9").Formula = "=HVIS(C9="";"";C9*X9)" Range("z9").Formula = "=HVIS(O9="";"";HVIS(O9=1;0;F9))" Range("aa9").Formula = "=HVIS(O9="";"";HVIS(O9=1;F9;0))" End Function Etter dette kjører onChange-eventen en autofill til end of data. Problem : v9 (test-kolonne med kun text) går in som varm kniv, men funksjonen nekter å sette inn formler, uansett om jeg bruker " eller '. Ser ut til at VBA ikke liker det når jeg bruker " mens excel nekter å ta i mot '. Noen som husker noen triks her ? 8949018[/snapback] Hvis Excel forventer " så gi Excel " Enkleste måten i VBA er å bruke Chr(34) Lenke til kommentar
Harald Staff Skrevet 1. juli 2007 Del Skrevet 1. juli 2007 Et gåsetegn i en VBA-streng er to påfølgende gåsetegn. For å få resultat J9="";""; må du i VBA skrive J9="""";""""; eller eventuelt bruke CHR(34). Viktigere er at Formula-property'en skal ha engelske Excelformler. Altså ikke HVIS men IF, ikke semikolon men komma, ... Spill inn en makro mens du setter inn formelen manuelt, så får du et godt utgangspunkt. Riktignok i FormulaR1C1 -format, men det er da også mye bedre egnet for programmatisk formelinnskrivning. (Den norske formelen ligger i property FormulaLocal, men bare i norsk Excel, så styr unna det i programmering.) HTH. Beste hilsen Harald 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å