Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketKan ikke anvende en variable som row

 Besvar Besvar
Forfatter
Thybo_chi Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 30.Dec.2018
Land: Danmark
Status: Offline
Point: 4
Direkte link til dette indlæg Emne: Kan ikke anvende en variable som row
    Sendt: 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 
Til top



Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5479
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 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.
Til top
Bjarnehansen Se dropdown
Platin bruger
Platin bruger
Avatar

Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5615
Direkte link til dette indlæg Sendt: 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
Til top
Thybo_chi Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 30.Dec.2018
Land: Danmark
Status: Offline
Point: 4
Direkte link til dette indlæg Sendt: 30.Dec.2018 kl. 22:25
Det virker heller ikke når det erstattes med 'x', ikke desto midre  jeg det for en sikkerhedsskyld :)
Til top
Thybo_chi Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 30.Dec.2018
Land: Danmark
Status: Offline
Point: 4
Direkte link til dette indlæg Sendt: 30.Dec.2018 kl. 22:25
Det virker heller ikke når det erstattes med 'x', ikke desto midre  jeg det for en sikkerhedsskyld :)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5479
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 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.
Til top
Thybo_chi Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 30.Dec.2018
Land: Danmark
Status: Offline
Point: 4
Direkte link til dette indlæg Sendt: 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  

Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5479
Direkte link til dette indlæg Sendt: 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.
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2025 Dansk Regneark Forum - en del af Excel-regneark.dk