【发布时间】:2020-03-19 20:30:00
【问题描述】:
我知道“Excel 公式未更新”这个话题已经在许多论坛上进行了很多讨论,但我还没有找到有用的解决方案来解决我的问题。
在工作表中,我使用内置 Excel 公式以及在工作表模块中使用 VBA 编写的自己的函数,并在工作表中引用它们。
编辑:
在单元格 A1 中有一个从十六进制代码生成的二进制代码。二进制代码在单元格 B1 中计算。
我们以下面的代码为例:100001101110
单元格 C1 包含以下内容:
=DecodeVal(B1;0;20)
如果我现在将十六进制代码粘贴到 A1 并在 B1 中创建二进制代码,则单元格 C1 将显示 #VALUE! 错误。
如果我返回单元格 A1,单击文本框并再次按 Enter,则会显示正确的值 (= 2158)。
为什么一开始有Value错误,再按回车就没有了?
这是我指的功能:
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
是的,计算选项设置为自动。
有什么建议吗?
谢谢
【问题讨论】:
标签: excel vba excel-formula updating