【问题标题】:Excel VBA Macro - Run on Selected CellsExcel VBA 宏 - 在选定的单元格上运行
【发布时间】:2016-05-06 18:56:06
【问题描述】:

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

我有一个录制的宏,它只是通过使用连接函数将前导 0 添加到数字。我正在使用相对引用,以便宏将在 A 列中选择的任何单元格上运行。如果我想为每个单元格一个接一个地添加前导零,则此方法有效。但是,我希望能够简单地选择我想添加前导 0 的列 A 中的单元格,然后一次在所有选定的单元格上运行宏。非常感谢任何帮助!

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

谢谢!!!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多