Sub Test()
Dim rngData As Range
Set rngData = ThisWorkbook.Worksheets.ActiveCell
rngData = Evaluate(rngData.Address & "*2")
End Sub
我正在尝试将整个工作表乘以2,但是出现错误。任何帮助将不胜感激。
谢谢 海克
答案 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 。它将忽略:
答案 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
对于您的用例来说,这可能不是一个好方法,但是请考虑一下,如果您只需要手动将乘数粘贴到范围内,甚至可能不需要宏。