Print side | Luk vindue

Kan ikke anvende en variable som row

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=3727
Udskrevet den: 21.Apr.2025 kl. 05:49


Emne: Kan ikke anvende en variable som row
Besked fra: Thybo_chi
Emne: Kan ikke anvende en variable som row
Posteringsdato: 30.Dec.2018 kl. 21:05
Hej 

Jeg er nybegynder i VBA /macro verden.
Jeg arbejder i to ark, et data ark (Ark1) hvorfra jeg trækker værdier, og et andet ark som skal vise det ønskede resultat. Jeg ønsker derfor at kunne tilføje en IF(HVIS) kode til celler, ved hjælp af en macro, men med varierende 'row', så jeg kan lave flere operationer hurtigere. 

Jeg har forsøgt følgende.

[CODE]
Sub ForsøgS_3XL()
Dim Row As Long

Row = 7

    Selection.Offset(0, 0).Select
    ActiveCell.FormulaR1C1 = "=IF('Ark1'!R[Row]C[-3]<0,0,'Ark1'!R[Row]C[-3])"
    Row = Row + 1
    Selection.Offset(0, -1).Select
    ActiveCell.FormulaR1C1 = "=IF('Ark1'!R[Row]C[-2]<0,0,'Ark1'!R[Row]C[-2])"
    Row = ArkRow + 1

'OSV...
'Med mulighed for Do Until og Loop
End Sub
[\CODE]

Dette virker i midlertid ikke. Hvis jeg indsætter en normalværdi, istedet for 'Row' er der ingen problemer, men den vile ikke samarbejde med min variabel.
Jeg kan sagtens få min resultat på andre måder, men da jeg ønsker at ligningen skal være fast i cellerne, da tallene i Ark1 skifter i løbet af året, er jeg udfordret.

Jeg har søgt på nettet, men ingen steder kan jeg finde noget der lige løser min situation. Jeg håber i kan hjælpe mig til at forstå hvad jeg gør galt :)

Mvh
Mads 



Svar:
Besked fra: Bjarnehansen
Posteringsdato: 30.Dec.2018 kl. 22:20
er det ikke fordi row er et reserveret ord i excel, ved ikke bare en ide.


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: Thybo_chi
Posteringsdato: 30.Dec.2018 kl. 22:25
Det virker heller ikke når det erstattes med 'x', ikke desto midre  jeg det for en sikkerhedsskyld :)


Besked fra: Thybo_chi
Posteringsdato: 30.Dec.2018 kl. 22:25
Det virker heller ikke når det erstattes med 'x', ikke desto midre  jeg det for en sikkerhedsskyld :)


Besked fra: EXCELGAARD
Posteringsdato: 31.Dec.2018 kl. 08:15
Din variabel bliver ikke opfattet som en variabel, da variablen befinder sig indenfor "anførselstegn" - dermed bliver din variabel opfattet som tekst.
Flyt variablen udenfor "anførselstegn" og det vil virke:
ActiveCell.FormulaR1C1 = "=IF('Ark1'!R[" & X & "]C[-3]<0,0,'Ark1'!R[" & X & "]C[-3])"
X = X + 1
Selection.Offset(0, -1).Select
ActiveCell.FormulaR1C1 = "=IF('Ark1'!R[" & X & "]C[-2]<0,0,'Ark1'!R[" & X & "]C[-2])"
Og, som Bjarne så ganske rigtigt siger: Brug ikke VBA nøgleord som variabel navne.


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: Thybo_chi
Posteringsdato: 31.Dec.2018 kl. 09:51
Mange tak det løste problemet! 
Jeg tager det med nøgleord til mig og er nu en god erfaring rigere.

God nytår til jeg alle og endnu engang tak for hjælpen :D  



Besked fra: EXCELGAARD
Posteringsdato: 31.Dec.2018 kl. 21:47
Velbekomme - og, selv Godt Nytår Beer Party


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.



Print side | Luk vindue