将范围与单元格VBA相乘

时间:2019-09-28 17:47:48

标签: excel vba

我是vba的新手。非常感谢我能提供的所有帮助。

我有几个问题。

1)我如何将范围与另一个包含值的单元格相乘并将新值放在旁边的列中?

2)设置范围为范围有什么用?这与Dim rng的范围有何不同?

3)我需要单击两次“键盘按钮”,然后“”显示为“”。如何解决此问题,使“单击键盘按钮一次会出现“?

这是我的密码。

Sub try()

Dim rng As Range
Dim x As Integer
Dim y As Integer

x = Range("A1:A5").Value

Range("B1:B5").Value = x * cells ( 1 , "E")

End Sub()

我得到

  

运行时错误13;类型不匹配

我也尝试过

Sub try()

Dim rng as range
Set rng as Range

rng = Range("A1:A5").Value

Range("B1:B5").Value = rng * cells( 1 , "E")
End Sub()

我得到该行的语法错误

  

将rng设置为Range

如果我删除此行,

我得到

的错误
  

错误91,对象变量或未设置块变量

2 个答案:

答案 0 :(得分:0)

对于第一个问题,虽然不需要VBA,但您可以这样做:

Option Explicit

Public Sub try()

    Dim rng As Range
    Dim cel As Range
    Dim x As Integer
    Dim lrow As Long

    With ActiveSheet
        lrow = .Cells(Rows.Count, 1).End(xlUp).Row
        Set rng = .Range("A1:A" & lrow)
        x = .Cells(1, "E").Value
    End With

    For Each cel In rng
        cel.Offset(0, 1).Value = cel.Value * x
    Next

End Sub

答案 1 :(得分:0)

1)

Sub try()
    With ActiveSheet
        .Range("B1:B5").Value = .Evaluate("=A1:A5 * $E$1")
    End With
End Sub

2)Set Range As Range的语法无效,因此目前您不清楚在这里问什么

3)听起来键盘坏了吗?