BASIC runtime error. Property or method not found.

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

skaface
*
Beiträge: 17
Registriert: Mi, 12.11.2008 13:01

BASIC runtime error. Property or method not found.

Beitrag von skaface »

Hallo zusammen,

ich hab mir in Calc 2 kleine Macros geschrieben, wovon 1 einen Übergabeparameter besitzt (GetSheetName):

Code: Alles auswählen

function GetSheetName(SheetNo)
	GetSheetName = thisComponent.getSheets.getByIndex(SheetNo).getName()
end function

function GetPrevSheetName()
	prevSheetNo = thisComponent.getCurrentController.getActiveSheet.getRangeAddress().Sheet - 1
	GetPrevSheetName = thisComponent.getSheets.getByIndex(prevSheetNo).getName()
end function
Das ganze funktioniert soweit ganz gut. Einziger Wermutstropfen ist momentan, dass beim öffnen des Dokuments der in der Überschrift genannte Fehler kommt. Dieser Fehler-Dialog kommt genauso oft, wie ich das Macro (also GetSheetName) in meinem Dokument benutze und lässt sich jeweils einfach mit OK bestätigen. Wenn ich alle Fehler-Dialoge mit OK bestätigt habe kann ich mit dem Dokument ganz normal ohne weitere Probleme arbeiten und die beiden Makros arbeiten auch korrekt...

Bin halbwegs erfahren, was Programmierung im allgemeinen betrifft, hab aber bisher nur sehr sehr eingeschränkte Erfahrungen mit Makro's und Basic sammeln können. Wie kann ich diesen Fehler also ausbessern? Irgendeine Fehlerroutine einbauen?

Da der Fehler nur im 1. Makro auftaucht geh ich jedenfalls mal davon aus, dass der Übergabeparameter das Problem darstellt...

danke, mfg
tunix_xl
**
Beiträge: 41
Registriert: Di, 27.11.2007 17:09

Re: BASIC runtime error. Property or method not found.

Beitrag von tunix_xl »

Habe folgenden code getestet, ohne Fehler

Code: Alles auswählen

Sub Main
  Dim oDoc
  Dim oSheet
  Dim SheetNo
  Dim rein
  oDoc    = ThisComponent
  oSheet = oDoc.GetSheets().GetbyName("Tabelle2")
  oSheetNo = thisComponent.getCurrentController.getActiveSheet.getRangeAddress().Sheet
  print oSheetNo

  rein = GetSheetName(oSheetNo)
  Print rein

  rein = GetPrevSheetName()
  print rein

End Sub

function GetSheetName(SheetNo)
   GetSheetName = thisComponent.getSheets.getByIndex(SheetNo).getName()
end function

function GetPrevSheetName()
   prevSheetNo = thisComponent.getCurrentController.getActiveSheet.getRangeAddress().Sheet - 1
   GetPrevSheetName = thisComponent.getSheets.getByIndex(prevSheetNo).getName()
end function
Die beiden Makros sollten also in Ordnung sein...
Toshiba Satelite L20 ubuntu 09.04 / 32bit / ooffice3.1 / LAMP
Antworten