Excel 将整个图纸乘以2
我试图将整个工作表乘以2,但我得到了一个错误。任何帮助都将不胜感激 谢谢Excel 将整个图纸乘以2,excel,vba,Excel,Vba,我试图将整个工作表乘以2,但我得到了一个错误。任何帮助都将不胜感激 谢谢 Hayk下面的代码将ActiveCell乘以2。请注意,这不会使整个图纸相乘 Sub Test() Dim rngData As Range Set rngData = ThisWorkbook.Worksheets.ActiveCell rngData = Evaluate(rngData.Address & "*2") End Sub 如果您真的想将工作表中的所有值乘以2,我会考虑
Hayk下面的代码将
ActiveCell
乘以2。请注意,这不会使整个图纸相乘
Sub Test()
Dim rngData As Range
Set rngData = ThisWorkbook.Worksheets.ActiveCell
rngData = Evaluate(rngData.Address & "*2")
End Sub
如果您真的想将工作表中的所有值乘以2,我会考虑在一个范围内循环。这里有一种稍微不太传统的方法,但您可以使用
特殊粘贴…>乘法功能。例如,在本例中,我将2
放在单元格A17
中,并将乘法器应用于我的A1:F15
范围。以下是以编程方式显示的情况:
Sub Test()
Dim rngData As Range
Set rngData = ActiveCell
rngData = Evaluate(rngData * 2)
End Sub
这可能不是你的用例的一个好方法,但是如果你只需要手动将你的乘法器粘贴到一个范围内,你可能甚至不需要宏。
尝试一下:
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
它将工作表中的所有数值常量单元格乘以2。它将忽略:
空单元格
文本单元格
公式单元格
@dwirony-此工作簿。工作表(“Sheet1”)。ActiveCell
引发错误。这是因为ActiveCell
已经隐式地包含了ThisWorkbook.Worksheets(“Sheet1”)
(假设Sheet1
是activesheet?)最好这样做,因为这会运行在整个电子表格上,所以在开始时将计算转换为手动,并在屏幕更新时设置为false会以任何可测量的方式帮助性能吗?
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