nachdem ich mit kräftiger Hilfe von Thomas nun meine ersten Versuche mit Basic unternehme, habe ich ein kleines Programm geschrieben.
Das Programm ist für ein Spieltheoretisches Modell, in dem als Ergebnis die Fälle A-I auftreten können.
Diese Fälle hängen von verschiedenen Parametern ab (Kosten, Kostensenkung, horizontale Differenzierung, vertikale Differenzierung, usw.).
Die Parameter werden auch durch das Basic Programm wie gewünscht variiert.
Ich möchte einen Zähler implementieren, der in die Zellen G1 - G10 die Anzahl der aufgetretenen Fällen angibt.
Allerdings komme ich mit der Case Funktion noch nicht so zurecht:
Code: Alles auswählen
REM Das Makro
sub Beispiel_makro
oDoc = thisComponent 'Zugiff auf das Dokument
oSheet = oDoc.sheets(0) 'Erstes Tabellenblatt
oZelleY = oSheet.getCellRangeByName("B3") 'Zelle B3
oZelleN = oSheet.getCellRangeByName("B4") 'Zelle B4
oZelleX = oSheet.getCellRangeByName("B5") 'Zelle B5
oZelleC = oSheet.getCellRangeByName("B6") 'Zelle B6
oZelleI1 = oSheet.getCellRangeByName("B7") 'Zelle B7
oZelleI2 = oSheet.getCellRangeByName("B8") 'Zelle B8
oZelleJ1 = oSheet.getCellRangeByName("B9") 'Zelle B9
oZelleJ2 = oSheet.getCellRangeByName("B10") 'Zelle B10
oZelleFallA = oSheet.getCellRangeByName("G2") 'Zähler für Fall A
oZelleFallB = oSheet.getCellRangeByName("G3") 'Zähler für Fall B
oZelleFallC = oSheet.getCellRangeByName("G4") 'Zähler für Fall C
oZelleFallD = oSheet.getCellRangeByName("G5") 'Zähler für Fall D
oZelleFallE = oSheet.getCellRangeByName("G6") 'Zähler für Fall E
oZelleFallF = oSheet.getCellRangeByName("G7") 'Zähler für Fall F
oZelleFallG = oSheet.getCellRangeByName("G8") 'Zähler für Fall G
oZelleFallI = oSheet.getCellRangeByName("G9") 'Zähler für Fall I
oZelleB12 = oSheet.getCellRangeByName("B12") 'Zelle B12
oZelleERG = oSheet.getCellRangeByName("D16") 'Zelle D16
oZelleY.value = 1 'Startwert 1
oZelleC.value = 0.5 'Startwert 0.5
oZelleFallA.value = 0
oZelleFallB.value = 0
oZelleFallC.value = 0
oZelleFallD.value = 0
oZelleFallE.value = 0
oZelleFallF.value = 0
oZelleFallG.value = 0
oZelleFallI.value = 0
REM Jetzt Y varieren
while oZelleY.value > 0
REM Jetzt N varieren
oZelleN.value=oZelleY.value
while oZelleN.value > 0
REM Jetzt c varieren
oZelleC.value = 0.5
while oZelleC.value > 0
REM Jetzt x varieren
oZelleX.value = oZelleC.value
while oZelleX.value > 0
Fall = oZelleERG.string
Select Case Fall
Case "A"
oZelleFallA.value = oZelleFallA.value + 1
Case "B"
oZelleFallB.value = oZelleFallB.value + 1
Case "C"
oZelleFallC.value = oZelleFallC.value + 1
Case "D"
oZelleFallD.value = oZelleFallD.value + 1
Case "E"
oZelleFallE.value = oZelleFallE.value + 1
Case "F"
oZelleFallF.value = oZelleFallF.value + 1
Case "G"
oZelleFallG.value = oZelleFallG.value + 1
Case "I"
oZelleFallI.value = oZelleFallI.value + 1
End Select
wait(500) ' etwas warten
oZelleX.value = ((oZelleX.value * 10) - 1)/10 'verringerung um eins
wend 'Ende der X Schleife
wait(500) ' etwas warten
oZelleC.value = ((oZelleC.value * 10) - 1)/10 'verringerung um eins
wend 'Ende der C Schleife
wait(500) ' etwas warten
oZelleN.value = ((oZelleN.value * 10) - 1)/10 'verringerung um eins
wend 'Ende der N Schleife
wait(500) ' etwas warten
oZelleY.value = ((oZelleY.value * 10) - 1)/10 'verringerung um eins
wend 'Ende der Y Schleife
end sub
Ist mit Sicherheit ein Programm Fehler.