Попытка использовать макрос VBA для вставки формулы в выбранные ячейки - PullRequest
0 голосов
/ 11 ноября 2018

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

Sub TimeConversion()
  ActiveCell.Formula = "=REPT(0,4-LEN(E8)) & E8" 
End Sub

Может кто-нибудь сказать мне, что я делаю не так? Мне просто нужно иметь возможность выбирать различные ячейки и запускать на них формулу REPT.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 12 ноября 2018

Этот макрос добавит четыре ноля к выбранным ячейкам / ячейкам.

For Each cell In Selection
    cell.NumberFormat = "@"
    cell.Value = WorksheetFunction.Rept("0", 4) & cell
Next
0 голосов
/ 12 ноября 2018

Если вы ищете решение в Excel-Formula, примененное в Excel-VBA, то вот оно ..

Sub test()
ActiveCell.Formula = "=REPT(0,4-LEN(E" & ActiveCell.Row & "))& E" & ActiveCell.Row & ""
End Sub
0 голосов
/ 11 ноября 2018

Основным принципом будет использование события worksheet_SelectionChange, но вы, вероятно, захотите ограничиться определенными ячейками, так как в противном случае любая ячейка, выбранная на листе с событием, получит формулу. Спасибо @GMalc за разъяснение требований и предложение поправки.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
     Target.NumberFormat = "0000"
    Application.EnableEvents = True
End Sub

Вы можете использовать Пересечение и указанный диапазон для ограничения определенными ячейками.

Код помещается в область кода листа, в котором должны отображаться формулы. Не в стандартной | модуль класса.

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