Excel VBA如何将范围乘以一个数字

Excel VBA如何将范围乘以一个数字,vba,excel,multiplication,Vba,Excel,Multiplication,我是VBA新手,我正在寻求帮助以解决以下问题。我需要把一个范围乘以一个数字。所有在该范围内的单元格都需要乘以该数字 谢谢大家! 正如我刚才所说。 1.在单元格处输入公式(如G1) 2.按Enter键并拖动公式 keong已经向您展示了一种方法,但不幸的是,该方法需要一个人在另一个单元格/区域中进行计算。如果这是你想要的,那么按照keong的答案去做,但是如果你想在相同的范围内进行计算,那么继续阅读下面的内容 下面是另一种不使用公式或VBA的方法 假设范围是A1:A10,您希望将整个范围乘以5

我是VBA新手,我正在寻求帮助以解决以下问题。我需要把一个范围乘以一个数字。所有在该范围内的单元格都需要乘以该数字


谢谢大家!

正如我刚才所说。
1.在单元格处输入公式(如G1)

2.按Enter键并拖动公式

keong已经向您展示了一种方法,但不幸的是,该方法需要一个人在另一个单元格/区域中进行计算。如果这是你想要的,那么按照keong的答案去做,但是如果你想在相同的范围内进行计算,那么继续阅读下面的内容

下面是另一种不使用公式或VBA的方法

假设范围是
A1:A10
,您希望将整个范围乘以
5

  • 只需在任何空白单元格中键入
    5
    您可以稍后删除该文件
  • 复制那个单元格
  • 选择范围
    A1:A10
  • 右键点击它
  • 单击
    粘贴特殊|值-乘法
    ,如下图所示,即可完成操作
  • 之前

    之后

    评论的后续行动

    如果您不想使用临时单元格写入5,则可以直接在剪贴板中设置
    5
    ,并像这样使用它

    Option Explicit
    
    Sub Sample()
        Dim ws As Worksheet
        Dim MyData As New DataObject
        Dim rng As Range
    
        Set ws = Sheet1
        Set rng = ws.Range("A1:A5")
    
        '~~> Put the number 5 in clipboard
        MyData.SetText 5
        MyData.PutInClipboard
    
        '~~> Get the data from clipboard
        MyData.GetFromClipboard
    
        rng.Formula = Application.Evaluate("=" & _
                                        rng.Address & _
                                        "*" & _
                                        Val(MyData.GetText))
    End Sub
    
    正如我所提到的,您不需要VBA,但是如果您仍然想使用VBA,那么您可以使用它,而不是将数据复制到剪贴板

    rng.Formula = Application.Evaluate("=" & rng.Address & "*" & MYNUMBER)
    

    其中,
    MYNUMBER
    是一个变量,该变量的数值与您想要的范围相乘。

    不使用vba即可完成此操作,只需在一个单元格中输入公式并在范围中拖动公式即可。嘿,Sid,您能想出一种方法在vba中完成此操作,而不使用单元格作为源值吗?我不知道怎么做的是把一些东西放在办公室的剪贴板上。而且看起来你不能从Windows剪贴板粘贴特殊值。@Douglancy:请看i_saw_drones的答案,因为数据存储为文本,所以“粘贴特殊值-乘法”不可用。但是
    paste特殊格式:=“Text”
    可用,不支持
    Multiply
    我总是可以创建一个新的隐藏页,在那里键入数字,然后复制它?一旦乘法运算完成,你就可以删除表格。希德哈特,是的,隐藏的表格或者类似的方法就是这样。但如果是这样的话,我想我应该通过一个数组进行循环。只是想知道在VBA中是否有一种方法。很高兴和你谈话!如果您想使用剪贴板,还有一种替代方法。我刚刚更新了我的帖子。好了!我再投你一票。