Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: GWolf от 09.02.2021, 07:21

Название: Автозавершение ввода в ячейку.
Отправлено: GWolf от 09.02.2021, 07:21
Доброго времени суток, друзья!

Решил облегчить себе жизнь. И сваял вот такой код:               

sumOplat = 600
vidOplat="Кс"

With ActiveCell
     If sumOplat > 0 Then
         If .Text <> "" Then
              .FormulaR1C1 = .FormulaR1C1 & "+" & sumOplat & "+" & "Ч(" & Chr(34) & vidOplat & Chr(34) & ")"
         Else
              .FormulaR1C1 = "=" & sumOplat & "+" & "Ч(" & Chr(34) & vidOplat & Chr(34) & ")"
         End If
     End If
     'эмуляция нажатия клавиш
     'App.SendKeys ("{F2}")
     'App.SendKeys ("{Enter}")
     Cancel = True 'отменить выделение ячейки
End With

результатом этого действа должно стать:
- в ячейке: =600+Ч("Кс")
- пользователь видит в ячейке: 600.
Оно так и происходит, НО, только после того, как я нажимаю F2 и Enter.
А хотелось бы, что бы макрос сам отрабатывал все чисто. Эмуляция нажатия клавишь не помогла: - результат работы макроса:
- в ячейке: =600+Ч("Кс")
- пользователь видит в ячейке: #ИМЯ?

Что то я упустил, а вот что? Не подскажут знатоки?
Всем откликнувшимся, Большое Спасибо!
Название: Re: Автозавершение ввода в ячейку.
Отправлено: Serge 007 от 09.02.2021, 09:40
Здравствуйте

.FormulaLocalдолжно помочь

Типа так:
sumOplat = 600
vidOplat = "Кс"

With ActiveCell
     If sumOplat > 0 Then
         If .Text <> "" Then
              .FormulaLocal = .FormulaR1C1 & "=+" & sumOplat & "+" & "Ч(" & Chr(34) & vidOplat & Chr(34) & ")"
         Else
              .FormulaLocal = "=" & sumOplat & "+" & "Ч(" & Chr(34) & vidOplat & Chr(34) & ")"
         End If
     End If
End With
Название: Re: Автозавершение ввода в ячейку.
Отправлено: GWolf от 09.02.2021, 09:57
СУПЕР! Спасибо! Все сработало!