Avatar billede lasse666 Novice
18. maj 2014 - 15:45 Der er 9 kommentarer og
1 løsning

Problem med ActiveCell.FormulaR1C1 notering

Jeg har brug for at udskifte en rowlength med en variabel.

En simpel
=SUM(I3:I74)

bliver i VBA til
ActiveCell.FormulaR1C1 = "=SUM(R[-72]C:R[-1]C)"

Jeg ved at summen altid starter i I3, men jeg vil gerne erstatte I74, med variblen n

Jeg har prøvet nogle forskellige ting med formlen, men jeg får ikke det ønskede resultat.

Nogen forslag, til hvordan formlen kan skrives som vba?
På forhånd tak :)
Avatar billede lasse666 Novice
18. maj 2014 - 15:46 #1
det er naturligvis ikke i74 men bare 74, der skal erstattes med variablen n
Avatar billede supertekst Ekspert
18. maj 2014 - 16:06 #2
Sub test()
Dim n As Integer
    n = 5

    Set område = Worksheets("Ark5").Range("I3:i" & n)
    a = WorksheetFunction.sum(område)
End Sub
Avatar billede lasse666 Novice
18. maj 2014 - 16:33 #3
tusind tak for svar. Jeg tror dog ikke helt, det er, hvad jeg har brug for. Jeg har min variabel n på plads, og jeg har min henvisning til worksheet på plads

Jeg har optaget summeringen af en kolonnesom vba:
=SUM(I3:I74)

Det er kommet til at se således ud:
ActiveCell.FormulaR1C1 = "=SUM(R[-72]C:R[-1]C)"

Kolonnen er altid så lang som som variablen n, mens den altid starter i I3. Jeg skal derfor have lavet I74 om til I(+variablen n) i R1C1 noteringen..giver det mening?
Avatar billede supertekst Ekspert
18. maj 2014 - 16:41 #4
Det skal altså være i R1C1 notationen...
Avatar billede lasse666 Novice
18. maj 2014 - 16:48 #5
præcis :)
Avatar billede supertekst Ekspert
18. maj 2014 - 17:24 #6
ActiveCell.FormulaR1C1 = "=SUM(R[-" & n & "]C:R[-1]C)"
Avatar billede lasse666 Novice
18. maj 2014 - 17:49 #7
Tusind mange tak :D Det virker, men den starter i I1 istedet for I3. Hvad skal ændres, for at det bliver I3? Jeg giver dig pointsene. God aften :)
Avatar billede supertekst Ekspert
18. maj 2014 - 17:58 #8
Selv tak - og i lige måde.
Ser på det og vender tilbage..
Avatar billede supertekst Ekspert
18. maj 2014 - 18:16 #9
Når markøren er i I74 og med nedenstående værdier bliver formlen i I74 =Sum(I3:I71)

Sub test3()
n = 71
ActiveCell.FormulaR1C1 = "=SUM(R[-" & n & "]C:R[-3]C)"
End Sub
Avatar billede kabbak Professor
18. maj 2014 - 18:33 #10
Public Sub test()
N = 3
ActiveCell.FormulaLocal = "=SUM(I" & N & ":I74)"
End Sub

Brug FormulaLocal, så er formelen ligesom i arket
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

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