更新单元格中的值
Updating values in cells
我正在努力弄清楚如何使用最终用户将使用 Application.InputBox 输入的值来更新给定单元格中的数字值。我知道代码中存在明显的错误,但由于我是 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") 中的数值,以为该单元格提供新的数值。此外,我想编写代码,以便最终用户可以 return 并根据需要多次更新该单元格中的数字值,只需单击按钮宏并输入一个值即可。
这里评论很少:
- 宁愿使用
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
我正在努力弄清楚如何使用最终用户将使用 Application.InputBox 输入的值来更新给定单元格中的数字值。我知道代码中存在明显的错误,但由于我是 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") 中的数值,以为该单元格提供新的数值。此外,我想编写代码,以便最终用户可以 return 并根据需要多次更新该单元格中的数字值,只需单击按钮宏并输入一个值即可。
这里评论很少:
- 宁愿使用
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