tvc
Seniormester
03. maj 2009 - 15:22
Der er
7 kommentarer og 1 løsning
Redigering af funktion via VBA - fejler
Hej Er der en der kan fortælle mig hvorfor jeg får ' ' rundt om min funktion (Indhold) ved brug af nedenstående funktion? Sub Makro1() Dim Indhold As String Indhold = Strings.Mid(ActiveCell.Formula, 2, 99) ActiveCell.FormulaR1C1 = "=ROUND(" + Indhold + ",-3)" End Sub Hilsen TVC
Annonceindlæg fra Infor
Hvad er indholdet af ActiveCell når du kalder funktionen og hvad skulle resultatet være?
tvc
Seniormester
03. maj 2009 - 18:33
#2
ActiveCell kan eksempelvis indeholde en enkelt henvisning til en celle: =H11 Denne funktion vil jeg gerne have sat ind i afrundfunktionen: =AFRUND(H11;-3) Men når jeg kører min macro giver den: =AFRUND('H11';-3)
Det ser ud som om det er pga måden du refererer til cellen; du skal bruge R1C1-notation. Der er lidt spildkode i mit eksempel, da jeg lige skulle teste, men den virker tilsyneladende. Sub Makro1() Dim Indhold As String Dim tmpFormula As String Dim R As Range Indhold = Mid(ActiveCell.Formula, 2, 99) Set R = Range(Indhold) 'Debug.Print R.Address Indhold = R.Address(False, False, xlR1C1) tmpFormula = "=ROUND(" & Indhold & ",-3)" ActiveCell.FormulaR1C1 = tmpFormula End Sub
tvc
Seniormester
03. maj 2009 - 20:31
#4
Der er noget der ikke helt virker, for funktionen refererer nu kun til J21 og ikke den aktive celle?
tvc
Seniormester
03. maj 2009 - 20:33
#5
Det næste problem er så også, at den kun virker på en Range og ikke på eksempelvis en =sum(a1:b1)
Sub Makro1() Dim Indhold As String Indhold = Strings.Mid(ActiveCell.Formula, 2, 99) ActiveCell.Formula = "=ROUND(" + Indhold + ",-3)" End Sub
tvc
Seniormester
24. august 2009 - 12:33
#8
Hej Excelent Beklager det sene svar - Det virker så tak for hjælpen. TVC
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.