Сохранить динамическое значение, используя глобальный словарь - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть условие If в ячейке B22.Возвращает True или False на основе значения B1.Значения в ячейке B1 являются динамическими.У меня есть If условие в C22, которое вызывает функцию N_50_C22, если аргумент B22 равен True.У меня есть требование, где мне нужно было бы скопировать значение E1 в C22 (через вышеупомянутую функцию), когда аргумент из ячейки B22 превращает True только в первом экземпляре.Это скопированное значение в C22 должно оставаться неизменным независимо от последующих изменений в аргументах B22.

У меня есть приведенный ниже код VBA для функции N_50_C22.

Public Dict_N_50_C22 As New Scripting.Dictionary

Public Function N_50_C22() As Double

    On Error GoTo ErrHandler:
    Dim High_Break_out As String, ReadCellValue As String

    If Not Dict_N_50_C22.Exists(High_Break_out) Then
        Dict_N_50_C22.Add High_Break_out, ""
    End If

    'Now retrieve the Order Status
    'This will return the value of Key Readcellvalue
    ReadCellValue = Dict_N_50_C22(High_Break_out)

    'If the order status equals the Trans then, we already placed order for that Trans
    'Exit the Function, don't place order again
     If ReadCellValue = "TRUE" Then
        Exit Function
    End If

    'If the Order Status is not equal to Trans then
    'Place the Order
    'Store the Trans as value to the Key TrdSym
    'So that next time it will return the Trans

    'Adding trans to dictionary key
    Dict_N_50_C22.Item(High_Break_out) = ThisWorkbook.Sheets("UP-MT").Range("B22").Value

    'Place the Order
    N_50_C22 = ThisWorkbook.Sheets("UP-MT").Range("E1").Value
Exit Function

ErrHandler:
    N_50_C22 = Err.Description
End Function

У меня проблема, когда эта функция возвращает значение 0 для первого истинного оператора B22.Не могли бы вы решить эту проблему.

IMG1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...