Avatar billede lisette Praktikant
28. december 2009 - 13:48 Der er 7 kommentarer og
1 løsning

Ikke absolute cellereference på vba-dannet formel

Hej med jer

Jeg laver en formel i mit regneark ved hjælp af følgende vba-kode:

Do Until Sheets("Estimat").Cells(y, 1).Value = "EST"
    intCashflowRk = y
   
        strFormelCashflow = "="
        For f = intStartår To intSlutår
            j = 1
            Do Until Sheets("Estimat").Cells(3, j).Value = f
                intCashflowÅr = j
                j = j + 1
            Loop
           
            strFormelCashflow = strFormelCashflow & "R" & intCashflowRk & "C" & Cells(1, intCashflowÅr + 1).Column & "+"
        Next
        strFormelCashflow = strFormelCashflow & "0"
       
        Sheets("Estimat").Range(Cells(y, 10), Cells(y, 10)).FormulaR1C1 = strFormelCashflow
    y = y + 1
Loop


og det giver mig fx. følgende formel på mit regneark:
=$X$23+$AK$23+$AX$23+$BK$23+$BX$23+$CK$23+0

Jeg vil meget gerne have at denne formel IKKE benytter absolutte celle referencer, men hvordan får jeg den til det??

Håber nogen kan trylle - mvh Lisette ;-)
Avatar billede Slettet bruger
28. december 2009 - 15:11 #1
Benyt [ ] omkring offsettet:

=RC ' Samme celle
=R[1]C[1] ' Cellen 1 række under og 1 kolonne til højre
=R[-1]C[-1] ' Cellen 1 række over og 1 kolonne til venstre

Hvis Jeg f.eks. vil tilgå celle X23 fra celle V10, er formlen:
=R[13]C[9] ' 13 rækker under, 9 kolonner til højre.

/1
Avatar billede lisette Praktikant
28. december 2009 - 15:22 #2
Hej kvadratrodenaf1

Tak for svar - jeg har nok ikke forklaret mig godt nok - jeg benytter ikke .offset nogen steder...det er $-tegnene i formlen jeg gerne vil have væk - og det er nok metoden jeg bruger til at danne formlen, som danner dem - men jeg ved ikke hvordan jeg skal få dem væk ;-)
Avatar billede Slettet bruger
28. december 2009 - 15:37 #3
Det er nok mig, der ikke forklarer mig godt nok :)

I denne linje:
strFormelCashflow = strFormelCashflow & "R" & intCashflowRk & "C" & Cells(1, intCashflowÅr + 1).Column & "+"

Skal du benytte [ ] omkring række- og kolonnenumrene.
Det ser ud til at du skal referere til celler i samme række - dvs. offset row = 0.
Skal kolonnen være absolut? for så ser formlen således ud:

strFormelCashflow = strFormelCashflow & "RC" & (intCashflowÅr + 1) & "+"

Jeg foreslår desuden, at du retter denne linje:
  Sheets("Estimat").Range(Cells(y, 10), Cells(y, 10)).FormulaR1C1 = strFormelCashflow
Til:
  Sheets("Estimat").Cells(y, 10).FormulaR1C1 = strFormelCashflow

Dvs. hele dit script kommer til at se sådan her ud:

Do Until Sheets("Estimat").Cells(y, 1).Value = "EST"
    intCashflowRk = y
   
        strFormelCashflow = "="
        For f = intStartår To intSlutår
            j = 1
            Do Until Sheets("Estimat").Cells(3, j).Value = f
                intCashflowÅr = j
                j = j + 1
            Loop
           
            strFormelCashflow = strFormelCashflow & "RC" & (intCashflowÅr + 1) & "+"
        Next
        strFormelCashflow = strFormelCashflow & "0"
       
        Sheets("Estimat").Cells(y, 10).FormulaR1C1 = strFormelCashflow
    y = y + 1
Loop
Avatar billede supertekst Ekspert
28. december 2009 - 15:39 #4
Var det ikke muligt at "replace" $ med "" inden formlen indsættes?
Avatar billede excelent Ekspert
28. december 2009 - 16:44 #5
Sub Test()
x = "=$X$23+$AK$23+$AX$23+$BK$23+$BX$23+$CK$23+0"
MsgBox Application.ConvertFormula(Formula:=x, fromReferenceStyle:=xlA1, toReferenceStyle:=xlA1, toabsolute:=xlRelative)
End Sub
Avatar billede excelent Ekspert
28. december 2009 - 18:54 #6
Sheets("Estimat").Cells(y, 10).Formula = Application.ConvertFormula(strFormelCashflow, xlA1, xlA1, xlRelative)
Avatar billede lisette Praktikant
28. december 2009 - 20:23 #7
Hej - tak for jeres svar.

Løsningen fra kvadratrodenaf1 fungerer upåklageligt og er enkel og fin - så jeg har tildelt ham points! Han var også den hurtigste ;-))

Godt nytår til jer alle
Avatar billede Slettet bruger
28. december 2009 - 20:27 #8
Tak for point.. Og godt nytår til dig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester