尝试使用VBA宏将公式粘贴到选定的单元格

时间:2018-11-11 17:48:17

标签: excel vba excel-vba excel-formula

我正在尝试创建一个宏,该宏将粘贴一个简单的公式以在我选择的单元格上添加零。这就是我所拥有的,但是它仅适用于已定义的单元,并且我不确定如何更改单元地址以在用户选择的任何单元上工作。

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

有人可以告诉我我做错了吗?我只需要能够选择各种单元格并在其上运行REPT公式即可。

谢谢!

3 个答案:

答案 0 :(得分:2)

一个基本原理是使用worksheet_SelectionChange事件,但您可能希望将其限制为某些单元格,否则,您在工作表中选择的具有该事件的任何单元格都会获得公式。感谢@GMalc阐明了要求并提出了修改。

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

您可以使用“相交”和指定范围来限制某些单元格。

代码进入要在其中显示公式的工作表的代码窗格中。类模块。

答案 1 :(得分:1)

此宏会将四个零添加到所选单元格。

For Each cell In Selection
    cell.NumberFormat = "@"
    cell.Value = WorksheetFunction.Rept("0", 4) & cell
Next

答案 2 :(得分:0)

如果您要在Excel-Formula中应用的Excel-VBA中寻找解决方案,那么就在这里。

Sub test()
ActiveCell.Formula = "=REPT(0,4-LEN(E" & ActiveCell.Row & "))& E" & ActiveCell.Row & ""
End Sub