Как рассчитать сумму значения текстового поля и вывести его в ячейку? - PullRequest
0 голосов
/ 08 июля 2019

Как рассчитать значение текстового поля и распечатать его в ячейку в Microsoft Excel VBA?

Например: я ввожу 2 * 2 в свое текстовое поле и хочу, чтобы он напечатал 4 вячейка.

текстовое поле находится в пользовательской форме, это то, что у меня есть до сих пор, хотя это работает, это не выглядит хорошо.Я новичок в совершенстве, поэтому помощь приветствуется.

 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 ]

2 голосов
/ 08 июля 2019

Полностью квалифицируйте свои объекты.

В настоящее время вы пишете Cells(lastrow, 1) = str & txtbox.Value & bracket

Excel означает имплицитно , трактуя это как ActiveSheet.Cells(lastrow, 1).Value = str & txtbox.Value & bracket - потому что вы предоставляете только половину информации, это должно быть угадано. Предполагается, что вы хотите ActiveSheet, и предполагается, что вы хотите изменить Value. Но вы не .

Чтобы поместить Formula в Cell в VBA, не используйте Value - используйте Formula, например: ActiveSheet.Cells(lastrow,1).Formula = str & txtbox.Value & bracket

В качестве альтернативы, если вы хотите Value, но не Formula, то есть 2 способа. Либо конвертируйте результат, вот так:

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

Или используйте метод Application.Evaluate :

ActiveSheet.Cells(lastrow, 1).Value = EVALUATE(str & txtbox.Value & bracket)
1 голос
/ 08 июля 2019
 Private Sub Submit_Click()
  With Sheets("Value")
    .Cells(Rows.Count, 1).End(xlUp).offset(1 ,0).formula = "=" & me.txtbox
  End With
End Sub

Я предполагаю, что текстовое поле называется txtbox и что подпрограмма запускается с кнопки на той же пользовательской форме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...