Я знаю, что топи c "Формулы Excel не обновляются" часто обсуждались на многих форумах, но я не нашел полезного решения своей проблемы.
В рабочем листе я использую встроенные формулы Excel, а также собственные функции, написанные с помощью VBA в модуле рабочего листа, и я ссылаюсь на них внутри рабочего листа.
РЕДАКТИРОВАТЬ:
Есть двоичный код, который генерируется из шестнадцатеричного кода в ячейке A1. Двоичный код вычисляется в ячейке B1.
Давайте возьмем следующий код в качестве примера: 100001101110
Ячейка C1 содержит следующее:
= DecodeVal (B1; 0 ; 20)
Если я теперь вставлю шестнадцатеричный код в A1, и двоичный код будет создан в B1, ячейка C1 отображает ошибку #VALUE!
.
Если I go вернитесь в ячейку A1, щелкните в текстовом поле и снова нажмите клавишу ввода, на экране отобразится правильное значение (= 2158).
Почему сначала возникает ошибка значения, а не если я нажимаю клавишу ввода еще раз?
Это функция, к которой я обращаюсь:
Public Function DecodeVal(value, start As Integer, length As Integer) As Long
Dim abschnitt As String
Dim i As Integer
Dim valueText As String
valueText = value.Text
If (Len(valueText) - start - length + 1 > 0) Then
abschnitt = Mid(valueText, Len(valueText) - start - length + 1, length)
Else
If (Len(valueText) > start) Then
abschnitt = Left(valueText, Len(valueText) - start)
length = Len(valueText) - start
End If
End If
Do
If (Int(Left(abschnitt, 1)) = 1) Then
DecodeVal = DecodeVal * 2 + 1
Else
DecodeVal = DecodeVal * 2
End If
abschnitt = Right(abschnitt, length - 1)
length = length - 1
Loop While length > 0
End Function
Да, параметры расчета установлены автоматически c.
Есть предложения?
Спасибо