【发布时间】:2019-11-27 02:10:59
【问题描述】:
我正在编写一个函数,它将数组中所选行中的所有值与数字 (x) 相加或相乘。但在部分
If method = 1 Then
rng.Rows(row_number) = rng.Rows(row_number) * x
ElseIf method = 2 Then
rng.Rows(row_number) = rng.Rows(row_number) + x
End If
我收到错误消息“运行时错误 424;需要对象”。
除了这段代码,我尝试使用 .Select 或 .entirerow.select,但它们都不起作用。
Function shiftMatrix(rg As Range, row_number As Long, x As Double, method As Integer) As Variant
Dim rng As Variant
rng = rg.value
If method = 1 Then
rng.Rows(row_number) = rng.Rows(row_number) * x
ElseIf method = 2 Then
rng.Rows(row_number) = rng.Rows(row_number) + x
End If
shiftMatrix = rng
End Function
Sub try() '
Dim rng As Variant
With Worksheets("Macro1")
rng = shiftMatrix(Worksheets("Macro1").Range("A12:AX14"), 3, 0.5, 1)
End With
End Sub
理想情况下,此函数将在 Locals 中显示一个数组“rng”,这样 rng(1) 和 rng(2) 将保持不变,而 rng(3) 将与“x”相加或相乘。
【问题讨论】:
-
您是想将该行的值与
x相乘,还是行号本身相乘? -
@TimStack 将它们乘以 x
-
请定义“他们”
-
@TimStack 将该行中的所有值乘以 x