Hej, jag kör en funktion i ett makro - skulle vilja ändra "rad" i funktionen via "Inputbox" Testa det här Funkar tyvärr inte - Kompileringsfel: En matris förväntas! Ok Excel makro är inte min speciallitet mer än att jag vet att det är VB6 stuk. Byta rad i funktionen? rimligtvis är det då 46 som är valfritt och kan lösas såhär: Funderat lite kring ditt problem. Lysande..! Funkar fint..! Ev. Ser att du använder "Integer" är det samma som gamla Long ? 16 vs 32 bit ? (32 bit Processor) Nja, M$ säger själva såhär: Suveränt! Sorry, jag ser nu att det blir kaka på kaka. Skönt att det funkar.Ändra i funktion med en "Inputbox"
Har provat olika varianter men får inte till det - någon som har ett tips på lösning...?
Ex.
ActiveCell.FormulaR1C1 = "=OFFSET('Prognos'!R46C[0],,0,,)"Sv: Ändra i funktion med en "Inputbox"
Raden ActiveCell.FormulaR1C1 = "=OFFSET('Prognos'!R46C[0],,0,,)" blir då så här
ActiveCell.FormulaR1C1 = Answer
<code>
Dim Answer As String, Msg As String, Title As String, DefVal As String
Msg = "Skriv in ActiveCell.FormulaR1C1"
Title = "Excel makro"
DefVal = "=OFFSET('Prognos'!R46C[0],,0,,)"
Answer = InputBox$(Msg, Title, DefVal)
ActiveCell.FormulaR1C1 = Answer
</code>
Har inte testat fullt utSv:Ändra i funktion med en "Inputbox"
Sv: Ändra i funktion med en "Inputbox"
Du skall ha en Reference till Microsoft Excel 8.0 Objekt Library
och att du skall ha Stdole2.tlb i ditt System32.
Någon Guru därute ? logga in !Sv: Ändra i funktion med en "Inputbox"
Dim r As Integer
r = InputBox("Välj rad", "Radbyte", 46)
ActiveCell.FormulaR1C1 = "=OFFSET('Prognos'!R" & r & "C[0],,0,,)"
Sv:Ändra i funktion med en "Inputbox"
Fungerar det när du "hårdkodar" enl.
Ex.
<b>ActiveCell.FormulaR1C1 = "=OFFSET('Prognos'!R46C[0],,0,,)"</b> ???
Det där med 46 förstod jag inte men säkert smart !Sv:Ändra i funktion med en "Inputbox"
Jag lade till en inputbox för ref. till flik. Hur gör jag för att loopa funktionen.?
Jag vill köra den för 52 celler som motsvarar årets veckor.
Nu har jag löst det genom att kopiera raderna lika många gånger...
Kan man även få referensen till kolumn att räkna upp med 6 för varje gång funktionen loopar...?
Ex.
ActiveCell.FormulaR1C1 = "=OFFSET('" & FLIK & "'!R" & RAD & "C[0],,0,,)"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=OFFSET('" & FLIK & "'!R" & RAD & "C[0],,6,,)"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=OFFSET('" & FLIK & "'!R" & RAD & "C[0],,12,,)"
ActiveCell.Offset(0, 1).SelectSv: Ändra i funktion med en "Inputbox"
Dim r As Integer, i As Integer, RAD as integer, KOLUMN as integer, FLIK as string
FLIK = InputBox("Ange flik", "Flik", "Prognos")
r = InputBox("Ange startrad", "Radbyte", 46)
for i=1 to 52
RAD= r+i
KOLUMN = (i-1)*6
ActiveCell.FormulaR1C1 = "=OFFSET('" & FLIK &"'!R" & RAD & "C[0],," & KOLUMN & ",,)"
ActiveCell.Offset(0, 1).Select
next
Sv:Ändra i funktion med en "Inputbox"
Sv: Ändra i funktion med en "Inputbox"
Byte 1 byte 0 to 255
Boolean 2 bytes True or False
Integer 2 bytes -32,768 to 32,767
Long
(long integer) 4 bytes -2,147,483,648 to 2,147,483,647
Single
(single-precision floating-point) 4 bytes -3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double
(double-precision floating-point) 8 bytes -1.79769313486231E308 to
-4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values Sv:Ändra i funktion med en "Inputbox"
Jag fick ändra en smula bara för att få radnumret bibehållet sen funkar det.
Man tackar och bugar..!
Sub Test()
Dim r As Integer, i As Integer, RAD As Integer, KOLUMN As Integer, FLIK As String
Dim RÄKNARE As Integer
FLIK = INPUTBOX("Ange flik", "Flik", "Prognos")
RAD = INPUTBOX("Ange startrad", "Radbyte", 0)
For i = 1 To 53
RÄKNARE = RAD + i
KOLUMN = (i - 1) * 6
ActiveCell.FormulaR1C1 = "=OFFSET('" & FLIK & "'!R" & RAD & "C[0],," & KOLUMN & ",,)"
ActiveCell.Offset(0, 1).Select
Next
End SubSv: Ändra i funktion med en "Inputbox"