更新单元格中的数值

问题描述 投票:0回答:1

我正在努力弄清楚如何使用Application.InputBox将给定单元格中的数字值更新为终端用户将输入的值,我知道这段代码存在明显的错误,但由于我是excel VBA新手,我的调试技能还不是很好,我无法弄清楚如何解决这个问题。我知道代码中存在明显的错误,但由于我是excel VBA的新手,我的调试技巧还不太成熟,我无法找出如何解决这些问题。这是我目前掌握的情况。

Sub UpdateLinen()

Dim NewLinen As Integer
Dim InputBoxResult As Integer
Dim ExistingValue As Integer
Dim NewValue As Integer

    NewLinen = Application.InputBox(Prompt:="How many new Linen Bandages are being added?", Type:=1)
    NewLinen = InputBoxResult

    ExistingValue = Range("B4").Value
    NewValue = Application.WorksheetFunction.Sum(ExistingValue + InputBoxResult)
    Range("B4").Value = NewValue

End Sub

Range("B4")的单元格中已经有一个数字值,这里的想法是最终用户点击一个按钮(完成后我将把宏分配给这个按钮),然后输入一个数字值,这个数字值将被添加到Range("B4")中,为该单元格提供一个新的数字值。此外,我想写这样的代码,使最终用户可以返回并更新该单元格中的数字值,只要点击按钮宏并输入一个值就可以了。

excel vba inputbox
1个回答
2
投票

这里的意见不多。

  • 宁可使用 Long 数据类型值,而不是 Integer (防止溢出问题的好习惯)
  • 你不需要 WorksheetFunction.Sum 在这里添加这些值
  • 您直接用以下方法覆盖用户的输入 NewLinen = InputBoxResult
  • 我知道你说会有一个按钮,但我喜欢有一个习惯,至少要有一个明确的工作表参考。
  • 另外,用多行写出逻辑也没什么不好,但其实这个操作也没什么花哨和困难,为什么不能用一行呢?

我可以推荐一下这样的方法。

Sub UpdateLinen()

Dim NewLinen As Long
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Blad1")

NewLinen = Application.InputBox(Prompt:="How many new Linen Bandages are being added?", Type:=1)
ws.Range("B4") = ws.Range("B4") + NewLinen

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.