Jeg har et binomial træ (option pricing) som kan se således ud.
65 50 60 40 45 47 35 30 25 20
I excel er der blevet brugt betinget formatering til at farvelægge bestemte celler i træet med rød farve (eksempelvis de to sidste nederste tal i træet). Herefter skal den laveste værdi blandt de røde celler enten findes eller markeres med en anden farve.
Træet er i mit regneark på 8 perioder dvs. dobbelt så stort som det ovenstående (et simplificeret eksempel), desuden kan de røde tal ligge i hele træet. Det må gerne være en VBA løsning.
Function MindsteFarvede(r As Range) As Double Dim Tal() As Double, I As Integer I = 0 For Each rr In r If rr.FormatConditions.Count > 0 Then ReDim Preserve Tal(I) Tal(I) = rr.Value I = I + 1 End If Next MindsteFarvede = WorksheetFunction.Min(Tal) End Function
Jeg kan ikke få den til fungere rigtigt. Jeg har lavet en makro som kører funktionen.
Public Sub Findmindst() Dim r As Range Set r = Selection Dim d As Double
d = MindsteFarvede(r)
MsgBox "Mindste værdi " & d End Sub
Public Function MindsteFarvede(r As Range) As Double Dim Tal() As Double, I As Integer I = 0 For Each rr In r If rr.FormatConditions.Count > 0 Then ReDim Preserve Tal(I) Tal(I) = rr.Value I = I + 1 End If Next MindsteFarvede = WorksheetFunction.Min(Tal) End Function
hvad er kriteriet i de farvede celler.?? det skal nok bygges ind i funktionen.
Jeg har sat et kriterie mere på her
Public Function MindsteFarvede(r As Range) As Double Dim Tal() As Double, I As Integer I = 0 For Each rr In r If rr.FormatConditions.Count > 0 And rr > 0Then ReDim Preserve Tal(I) Tal(I) = rr.Value I = I + 1 End If Next MindsteFarvede = WorksheetFunction.Min(Tal) End Function
Den reviderede udgave af koden medtager stadig andre celler end røde.
Som du kan se på billederne er der i træet to celler med tal i hvert node, det øverste tal repræsenterer Stock Price og det nederste Option Price. Det er kun Option Price der er formateret. Meningen er, at den laveste røde Option Price skal findes, og derefter skal den tilhørende Stock Price farves blå eller vises på anden måde.
Option Price cellerne er formateret således:
1. Celler = 0 skal ikke formateres (stop hvis sand) 2. Celler der ikke er mellem 0 og x-y skal ikke formateres (stop hvis sand) 3. Celler > 0 skal formateres rødt 4. Celler >= x-y skal formateres rødt Tak for hjælpen.
Det jeg mener med at cellerne ikke er formateret, er at de ikke har nogen farve, måske er det problemet. jeg har forsøgt lidt med Interior.ColorIndex = 3, men den kan ikke opfatte den røde farve.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.