在Excel VBA中将所选内容除以X

在Excel VBA中将所选内容除以X,excel,vba,Excel,Vba,这可能是一个垒球,但我如何将选择除以一定数量?在这种情况下:2.204623?我知道你可以使用“PasteSpecial”,但我正在尝试找出如何只进行选择,然后分配一个热键(宏) 我想不出如何混合粘贴一个特定区域的功能 Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlDivide, SkipBlanks _ :=False, Transpose:=False 如果要分割范围内的每个单元格 Sub Makemt()

这可能是一个垒球,但我如何将选择除以一定数量?在这种情况下:2.204623?我知道你可以使用“PasteSpecial”,但我正在尝试找出如何只进行选择,然后分配一个热键(宏)

我想不出如何混合粘贴一个特定区域的功能

  Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlDivide, SkipBlanks _
        :=False, Transpose:=False

如果要分割范围内的每个单元格

Sub Makemt()
 Dim Cell As Range
 Dim div_mt As Double

 div_kg = 2.204623

 For Each Cell In Selection

    If IsNumeric(Cell.Value) Then
        Cell = Cell/ div_kg
    End If

 Next Cell

End Sub

编辑:记下@ScottCraner关于单元格中数值的注释

您可以通过以下方式避免单元格中的循环和数字:

Sub Makemt()    
 Dim div_mt As Double    
 div_mt = 2.204623

 Selection.Value = Selection.Parent.Evaluate("INDEX(" & Selection.Address & "/" & div_mt & ",)")

End Sub
如果您的值位于单元格中,则使用以下选项:

Sub Makemt()

Worksheets("Sheet1").Range("K11").Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlDivide, SkipBlanks _
    :=False, Transpose:=False

End Sub

Sheet1上的K11将是找到该值的单元格。

要使用paste special,必须将
2.204623
放在单元格中。这不是简单的cell=cell/2.204623吗?如果2.204623所在的区域有一个命名范围,它会工作吗?所以“选择”/“命名范围”?只要号码在单元格中就可以了是的。我不知道是否有什么事你不能回答Scott!非常感谢。第一部分工作完美。
Sub Makemt()

Worksheets("Sheet1").Range("K11").Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlDivide, SkipBlanks _
    :=False, Transpose:=False

End Sub