У меня есть формула Excel:формула вычисления Excel, один раз, затем удаление
=SplitKey(GetSysCd(INDEX([ReportValue],MATCH("mtr_make_model",[FieldName],0)),INDEX([ListName],MATCH("mtr_make_model",[FieldName],0))), 0)
, который работает несколько подпрограмм в VBA, но, главным образом, соответствующие значения и вставки этих значений в клетку. Когда он находит значение для «mtr_make_model», он запускается и сопоставляет значения внутри таблицы кодов sys. Проблема, с которой я сталкиваюсь, заключается в том, что она вычисляется один раз, а затем удаляет формулу и теперь имеет только значение ... В случае, если я перехожу в поле mtr_make_model и изменяю значение, формула не пересчитывается. Кто-нибудь слышал об этом? Это связано с чем-то в коде VBA? Как заставить эту формулу оставаться на месте, и если определенные значения меняются, формула пересчитывается?
Заранее спасибо.
Вот две функции:
Public Function GetSysCd(ByVal name As String, sysCdTableName As String) As String
Dim r As Integer
Dim sysCdTable As Range
Dim nameList As Variant
Dim sysCd As String
On Error GoTo GetSysCd_Error
Set sysCdTable = Worksheets("sys_cd").Range(sysCdTableName)
nameList = WorksheetFunction.Index(sysCdTable, 0, 2)
r = WorksheetFunction.Match(name, nameList, 0)
sysCd = WorksheetFunction.Index(sysCdTable, r, 1)
GetOutOfHere:
On Error GoTo 0
GetSysCd = sysCd
Exit Function
GetSysCd_Error:
sysCd = ""
GoTo GetOutOfHere
End Function
Public Function SplitKey(s As String, v As Integer)
Dim aString As Variant
Dim r As Integer
If Len(s) > 2 Then
aString = Split(s, "_")
If v = 0 Or v = 1 Then
SplitKey = aString(v)
Else
SplitKey = aString(0)
End If
Else
SplitKey = ""
End If
End Function
Я не думаю, что функции актуальны на данный момент, а просто вопрос функции не пересчитывая, когда переменная изменяется по формуле ...
Опубликуйте свой код. Я предполагаю, что вы назначаете значение ячейке, а не самой функции. –
Я сделал дополнения –
Проблема в том, что она не пересчитывается ... но я должен упомянуть, что формула ушла после того, как она вычисляет один раз ... Как сохранить формулу для стартеров, тогда как я ее получу для того, чтобы пересчитать, что мне нужна помощь с –