如何计算文本框值的总和并将其打印到单元格?

时间:2019-07-08 13:16:56

标签: excel vba

如何计算文本框的值并将其打印到Microsoft Excel VBA中的单元格中?

例如:我在文本框中输入2 * 2,并希望它在单元格中打印4。

文本框在用户窗体中,这是我到目前为止所拥有的,尽管它可以正常工作,但看起来并不好。我是excel新手,不胜感激。

 Private Sub Submit_Click() 
 Dim str As String 
 Dim bracket As String 
 lastrow = Cells(Rows.Count, 1).End(xlUp).Row + 1 
 str = "=SUM(" 
 bracket = ")" 
 Application.ScreenUpdating = False 
 Sheets("Value").Activate 
 Cells(lastrow, 1) = str & txtbox.Value & bracket 
 Application.ScreenUpdating = True

2 个答案:

答案 0 :(得分:2)

完全合格您的对象。

当前,您正在写Cells(lastrow, 1) = str & txtbox.Value & bracket

Excel是隐式,将其视为ActiveSheet.Cells(lastrow, 1).Value = str & txtbox.Value & bracket-因为您只提供一半的信息,所以必须猜测。它假定您想要ActiveSheet,并且假定您要更改Value。但是,您不要

要将Formula放入VBA的Cell中,请不要使用Value-使用Formula,就像这样:ActiveSheet.Cells(lastrow,1).Formula = str & txtbox.Value & bracket

或者,如果您想要Value而不是Formula,则有两种方法。要么转换结果,像这样:

With ActiveSheet.Cells(lastrow, 1)
    .Formula = str & txtbox.Value & bracket
    .Calculate
    .Value = .Value
End With

或使用Application.Evaluate method

ActiveSheet.Cells(lastrow, 1).Value = EVALUATE(str & txtbox.Value & bracket)

答案 1 :(得分:1)

 Private Sub Submit_Click()
  With Sheets("Value")
    .Cells(Rows.Count, 1).End(xlUp).offset(1 ,0).formula = "=" & me.txtbox
  End With
End Sub

我假设该文本框被称为txtbox,并且该例程是通过同一用户窗体上的按钮运行的