Waarom werkt mijn macro niet

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.055
Besturingssysteem
Wndows 10
Office versie
2016
Hallo forumleden

Ik gebruik onderstaande macro om op te tellen in een databereik.
deze werkt zonder problemen.

Code:
Sub OptellenJaarkosten
   sheet = ThisComponent.Sheets.GetByName("Jaarkosten")
   maand = sheet.getCellRangeByName("E9:F27")
   data = maand.DataArray
   for each row in data
      row(1) = row(0)+row(1)
   next
   maand.DataArray = data
End Sub

Nu wilde ik deze ook gebruiken om de kosten af te trekken door de "+" door "-" te vervangen maar dat werk dus niet maar waarom weet ik niet.
Code:
Sub AftrekkenJaarkosten

 sheet = ThisComponent.Sheets.GetByName("Jaarkosten")
   maand = sheet.getCellRangeByName("E9:F27")
   data = maand.DataArray
   for each row in data
    row(1) = row(0)-row(1)
   next
   maand.DataArray = data
End Sub

Deze wilde ik ook gebruiken om 2 rows te delen dus wilde ik "+" door "/" vervangen maar ga ervan uit dat het ook niet werkt.

Ik hoop dat jullie raad weten.
 
ThisComponent is een object van Libre Office en niet van Excel, net als de methode GetCellRangeByName.
Waar heb je die in Excel vandaan gehaald?

Gebruik ook geen correct Engelse woorden als naam van een variabele. In dit geval de woorden sheet en row.

Tip:
Zet Option Explicit bovenin je module.
Dan wordt je vanzelf op dat soort fouten gewezen.
 
Laatst bewerkt:
Geoedemorgen Ed,

Inderdaad is dit een StarBasic macro.
Het gaat mij om het volgende deel en dat is bij mijn weten gelijk aan VBA.
Code:
   data = maand.DataArray
   for each row in data
      row(1) = row(0)+row(1)
   next
   maand.DataArray = data

En met name
Code:
   row(1) = row(0)+row(1)
omdat ik dit moet gebruiken om te rekenen.
 
Zonder te zien hoe maand.DataArray is opgebouwd en welke gegevens deze bevat, is daar weinig van te zeggen. Tevens zou ik niet het woord row op die manier gebruiken omdat dat in VBA een gereserveerd woord is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan