Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ausdruck in Kontext nicht definiert

Ausdruck in Kontext nicht definiert
08.05.2013 13:32:33
Anfängerin13
Hallo ich habe folgenden Code jedoch funktioniert dieser nicht.
Ich bin Anfängerin und programmiere für meine Masterthese und kann mir leider daher nicht erklären warum hinter "mySheet" LEER angegeben wird.
Das Problem habe ich fett markiert. Hoffe einer kann mir helfen. Vielen Dank!
Mein Code:
Public Sub Optimiere()
Dim mySheet As Worksheet
Dim highestPriceDate As Date
Set mySheet = ActiveSheet
While WorksheetFunction.Min(mySheet.Range("J:J"))  0
highestPriceDate = findHighestPriceDate(mySheet.Range("F3:F8790"), 9, 1, 3, 8790)
Call populateLevels(mySheet.Range("A3:A8790"), highestPriceDate, 1, 4, 8, 10, 11, 9)
Wend
End Sub
Private Function findHighestPriceDate(DemandPrice As Range, HydroInputCol As Integer,  _
TimestampCol As Integer, startR As Long, endR As Long) As Date
Dim HighestPrice As Single
Dim HPRow As Long
Dim thisSheet As Worksheet
Dim r As Long
Dim c As Long
HighestPrice = 0
Set thisSheet = DemandPrice.Worksheet
c = DemandPrice.Column
For r = DemandPrice.Row To DemandPrice.Row + DemandPrice.Rows.Count - 1
If thisSheet.Cells(r, c) > HighestPrice And thisSheet.Cells(r, HydroInputCol) = "" Then
HighestPrice = thisSheet.Cells(r, c)
HPRow = r
End If
Next r
findHighestPriceDate = thisSheet.Cells(HPRow, TimestampCol)
End Function
Private Sub populateLevels(myRange As Range, dateToFind, TimestampCol, DemandCol,  _
availableCapacityCol, ResidualOptimizationCol, generatedMWhCol, HydroInputCol)
Dim r As Long
Dim mySheet As Worksheet
Dim myMin As Single
 r = myRange.Find(dateToFind).Row
Set mySheet = myRange.Worksheet
myMin = WorksheetFunction.Min(mySheet.Cells(r, DemandCol), mySheet.Cells(r,  _
availableCapacityCol), mySheet.Cells(r, ResidualOptimizationCol))
mySheet.Cells(r, generatedMWhCol) = myMin
mySheet.Cells(r, HydroInputCol) = myMin
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausdruck in Kontext nicht definiert
08.05.2013 14:10:20
Peter
Hallo,
die Find-Methode verlange als Empfangs-Variable eine Range
und verlange ebenfalls ein Set, um ein Ergebnis zu liefern
Option Explicit
Private Sub populateLevels(myRange As Range, dateToFind, TimestampCol, DemandCol, _
availableCapacityCol, ResidualOptimizationCol, generatedMWhCol, HydroInputCol)
Dim rZelle As Range
Dim lZeile As Long
Dim mySheet As Worksheet
Dim myMin As Single
Set rZelle = myRange.Find(What:=dateToFind, LookAt:=xlWhole, LookIn:=xlFormulas)
If Not rZelle Is Nothing Then
lZeile = rZelle.Row
Else
MsgBox "Das Datum  """ & dateToFind & """  wurde nicht gefunden."
Exit Sub
End If
Set mySheet = myRange.Worksheet
myMin = WorksheetFunction.Min(mySheet.Cells(lZeile, DemandCol), mySheet.Cells(lZeile, _
availableCapacityCol), mySheet.Cells(lZeile, ResidualOptimizationCol))
mySheet.Cells(lZeile, generatedMWhCol) = myMin
mySheet.Cells(lZeile, HydroInputCol) = myMin
End Sub

Ohne Deinen Code getestet zu haben sollte das so funktionieren
Gruß Peter

Anzeige
AW: Ausdruck in Kontext nicht definiert
08.05.2013 16:02:17
Anfängerin13
Vielen Dank Peter!! Ja es funktioniert sogar. Jedoch habe ich ein Problem bei der Ausführung des Codes.
Es besteht zwar keine Fehlermeldung mehr, jedoch sucht meine Min-Funktion das Minimum aus Demand, available Capacity und Residual Optimization. (Kurze Erläuterung: Residual Optimization beinhaltet Wasser welches entleert werden kann). Da er nun das Minimum sucht, läuft meine Wassermeng auch ins negative.
Kann ich eine IF Condition einbauen, sodass wenn Residual Optimization = 0 ist, er die Zeile überspringen soll?
Also sowas wie:
mySheet.Cells(r, generatedMWhCol) = myMin
mySheet.Cells(r, HydroInputCol) = myMin
IF mySheet.Cells(r, ResidualOptimization) = 0 Then Next r
End IF

End Sub
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige