Excel 从 TextBox 获取值

Excel Get Value From TextBox

我有几个文本框供我从中获取价值。我有它的示例代码。但它不会在我每次更新文本框时自动更改。如何自动更新?

Dim ader, ader1, ader2, ader3, ader4 As Double
Sub TextBox1_BeforeUpdate()
    On Error Resume Next
    Dim tb, tb1, tb2, tb3 As TextBox
    Set tb = ActiveSheet.TextBoxes("TextBox 51")
    Set tb1 = ActiveSheet.TextBoxes("TextBox 46")
    Set tb2 = ActiveSheet.TextBoxes("TextBox 48")
    Set tb3 = ActiveSheet.TextBoxes("TextBox 45")
    ader = CDbl(tb.Text) + CDbl(tb1.Text) + CDbl(tb2.Text)
    ader1 = CDbl(tb.Text)
    ader2 = CDbl(tb1.Text)
    ader3 = CDbl(tb2.Text)
    ader4 = CDbl(tb3.Text)
    Application.CalculateFull
End Sub
Public Function valu() As Double
    Application.Volatile
    valu = ader
End Function
Public Function valu1() As Double
    Application.Volatile
    valu1 = ader1
End Function
Public Function valu2() As Double
    Application.Volatile
    valu2 = ader2
End Function
Public Function valu3() As Double
    Application.Volatile
    valu3 = ader3
End Function
Public Function valu4() As Double
    Application.Volatile
    valu4 = ader4
End Function

我建议你忘掉VBA。相反,将每个文本框的 LinkedCell 属性 设置为 Tbx 覆盖的单元格的地址。这样的效果是,无论您在 Tbx 中键入什么,都会立即传输到 sheet 但仍然不可见,因为该单元格已被 Tbx 覆盖。

假设您的文本框链接到单元格 D3、D5 和 D7,您现在可以编写如下所示的公式来显示输入的总数。

=SUM(D3, D5, D7)

当然,您可以使用 VBA 获得相同的结果,但这种方法似乎更易于实施和维护。 LinkedCell 属性 接受一个简单的字符串,如 D3.