相关疑难解决方法(0)

按价值乘以整个范围?

所以我能想到的最好的方法是在大范围内(大约450k行)实现这个目的是使用以下Sue-do代码:

Range("A1").Copy ' A1 Contains Value I want to multiply column by
Range("MyTable[FooColumn]").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
Run Code Online (Sandbox Code Playgroud)

现在这样可行,但事实上我必须复制并粘贴该值似乎是多余的,因为值永远不会改变.

For Each c In Range("MyTable[MyColumnHeader]")
    If IsNumeric(c) And Not c = "" Then
        c.Value = c.Value * 453.592 ' The value that is in A1 from previos sample
    End If
Next
Run Code Online (Sandbox Code Playgroud)

这有效,但速度较慢.因为它必须循环每个细胞.

我也尝试过:

With Range("MyTable[MyColumnHeader]")
    .Value = .Value * 453.592
End With
Run Code Online (Sandbox Code Playgroud)

但是如果列中有多个值,则收到运行时错误类型不匹配错误.

我考虑插入一个列并使用"=R-1C * 453.592"Then 的formulaR1C1 .Value = .Value然后移动列并覆盖,但看起来很笨重,我认为也比粘贴倍增慢.

那么,有没有人有更好的方法来完成这项任务?

excel vba excel-vba

5
推荐指数
1
解决办法
4万
查看次数

乘以范围的指定值

我试图简单地将两个范围相乘,并且它是由 activeX 按钮激活的,但它一直给我#Name?来自乘法错误的错误 obv 但我不知道如何正确编辑它。谢谢

Private Sub CommandButton1_Click()
Dim rngData     As Range
    Dim rngNum     As Range

    Set rngData = ThisWorkbook.Worksheets("Custom Systems").Range("G16")
      Set rngNum = ThisWorkbook.Worksheets("Custom Systems").Range("c8")
    rngData = Evaluate(rngData.Address & "* rngNum")
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba

0
推荐指数
1
解决办法
179
查看次数

标签 统计

excel ×2

vba ×2

excel-vba ×1