将整个表乘以2

时间:2018-12-21 20:35:03

标签: excel excel-vba

Sub Test()

    Dim rngData As Range

    Set rngData = ThisWorkbook.Worksheets.ActiveCell
    rngData = Evaluate(rngData.Address & "*2")
End Sub

我正在尝试将整个工作表乘以2,但是出现错误。任何帮助将不胜感激。

谢谢 海克

3 个答案:

答案 0 :(得分:2)

以下内容会将ActiveCell乘以2。请注意,这不会乘以整个工作表!

Sub Test()
    Dim rngData As Range
    Set rngData = ActiveCell
    rngData = Evaluate(rngData * 2)
End Sub

如果您确实想将工作表中的所有值乘以2,我会遍历一个范围。

答案 1 :(得分:2)

尝试一下:

Sub MultiplyByTwo()
    Dim r As Range, rng As Range

    On Error Resume Next
        Set rng = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, xlNumbers)
    On Error GoTo 0

    If rng Is Nothing Then Exit Sub

    For Each r In rng
        r.Value = 2 * r.Value
    Next r
End Sub

它将工作表中的所有数字常量单元格乘以 2 。它将忽略:

  1. 空单元格
  2. 文本单元格
  3. 配方细胞

答案 2 :(得分:0)

这是一种不太常规的方法,但是您可以使用Paste Special... > Multiply功能。例如,对于本示例,我在单元格2中放置了一个A17,并将乘数应用于我的A1:F15范围。这是程序化的样子:

Sub MultiplyAll()
    Range("A17").Select 'select the multiplier from cell A17
    Application.CutCopyMode = False
    Selection.Copy 'capture the multiplier "2" onto the clipboard
    Range("A1:F15").Select 'select the range that will be multiplied
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
End Sub

对于您的用例来说,这可能不是一个好方法,但是请考虑一下,如果您只需要手动将乘数粘贴到范围内,甚至可能不需要宏。