【发布时间】:2012-06-19 09:49:58
【问题描述】:
我从电子表格模块调用一个函数,该函数在另一张表中进行一些处理并返回一个整数。然后,我想将该整数写入工作表中调用该函数的单元格中。我收到错误 400,我想我没有正确处理工作表之间的切换。
你能帮我解决这个问题吗?
Function lastNonZero(Rng As Range) As Integer
i = 19
Do While ActiveCell.Value = 0
ActiveCell.Offset(0, -1).Activate
i = i - 1
Loop
lastNonZero = i
End Function
从位于 Sheet A 模块中的 Sub 中提取:
For j = startRow To startRow + (nRows - 1)
Worksheets("B").Select
Range("Y" & j).Activate
k = lastNonZero(Worksheets("B").Range("Y" & j))
Worksheets("A").Range("BZ" & j) = k
Next j
【问题讨论】:
-
您的意思是 for 循环在位于工作表 A 上的 Sub 中吗?
-
没错,就是这个意思,非常感谢您的帮助
-
您在哪一行得到错误?作为参数传递给
lastNonZero的范围从未在函数中使用,这可能不是您想要做的。 -
在我调用函数之前,我已经在该行中得到了错误,即Range("Y" & j).Activate........之后函数的输入在工作表 B 和函数处理应在工作表 B 中完成并返回一个整数,然后该整数应写入工作表 A 中的单元格