Excel VBAmacros – 在选定的单元格上运行

我是一个完全新手,当谈到在VBA写作,并一直在寻找一个答案,我可以用来解决我的问题,没有运气。 我已经看到了一些相关的问题,但没有我能够申请。

我有一个logging的macros,通过使用连接函数简单地将前导0添加到一个数字。 我正在使用相对引用,以便该macros将运行在列A中select任何单元格。这工作,如果我想要添加一个前导零到每个单元格。 不过,我希望能够简单地select列AI中的单元格想要添加一个前导0,然后一次运行所有选定单元格上的macros。 任何帮助是极大的赞赏!

Sub leadingzerotake2() ActiveCell.Offset(0, 10).Range("A1").Select ActiveCell.FormulaR1C1 = "=CONCATENATE(""0"",RC[-10])" ActiveCell.Select Selection.Copy ActiveCell.Offset(0, -10).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveCell.Offset(0, 10).Range("A1").Select Application.CutCopyMode = False Selection.ClearContents ActiveCell.Offset(0, -10).Range("A1").Select End Sub 

谢谢!!!

只需将此代码放在工作表模块中 –

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 And Target.Count < 1000 Then For Each cell In Target.Cells 'run your fuction here Next End If 

结束小组

由于这个function可以潜伏很长时间,所以我把这个操作限制在最多1000个单元的select上。 如果你喜欢,你可以删除这部分。

顺便说一句,如果你想简单地为所选单元格的内容添加一个前导零,我简单地说 –

 cell.Value = "0" & cell.Value