如何计算文本框的值并将其打印到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
答案 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,并且该例程是通过同一用户窗体上的按钮运行的