Excel VBA宏 - 在所选单元格上运行

4

在写VBA方面,我是一个完全的新手,并一直在寻找解决我的问题的答案,但没有成功。我看到了一些相关的问题,但是没有一个能够解决我的问题。

我有一个记录的宏,只需使用连接函数将前导0添加到数字上。我正在使用相对引用,以便宏将在选定的A列中的任何单元格上运行。如果我想逐个单元格地添加前导零,则这样可以工作。但是,我想能够选择列A中要添加前导0的所有单元格,然后一次在所有选定的单元格上运行宏。非常感谢您的帮助!

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

感谢您!
1个回答

2

将此代码放入工作表模块即可 -

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
End Sub

由于这个功能可能需要花费很长时间来运行,因此我将此操作限制为最多选择1000个单元格。如果您愿意,可以删除此部分。

顺便说一句,如果您只想在所选单元格的内容前添加一个零,我会这样做 -

cell.Value = "0" & cell.Value

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接