1

好的,基本上我有一个销售管理系统,列出了所有待售的漫画,我正在尝试添加一种方法来添加另一个漫画。一切正常,但我需要更新显示总数的公式,以及我在下面的代码中尝试过的公式,但是当我尝试将我的 cellnum 设置为搜索返回的行号时,它会抛出一个 object required 错误。

Dim cellnum As Integer
Set cellnum = range("B4:B500").Find("TOTALS").Row

Dim cellnum_minus As Integer
Set cellnum_minus = cellnum - 1

Dim cellnum_plus As Integer
Set cellnum_plus = cellnum + 1

range("O" & cellnum).Value = "=SUM(O4:O" & cellnum_minus & ")"
range("Q" & cellnum).Value = "=AVERAGE(O4:O" & cellnum_minus & ")"
range("R" & cellnum).Value = "=MAX(R4:R" & cellnum_minus & ")"
range("S" & cellnum).Value = "=MIN(S4:S" & cellnum_minus & ")"
range("C" & cellnum_plus).Value = "=C" & cellnum & "/10"
range("D" & cellnum_plus).Value = "=D" & cellnum & "/10"
range("E" & cellnum_plus).Value = "=E" & cellnum & "/10"
range("F" & cellnum_plus).Value = "=F" & cellnum & "/10"
range("G" & cellnum_plus).Value = "=G" & cellnum & "/10"
range("H" & cellnum_plus).Value = "=H" & cellnum & "/10"
range("I" & cellnum_plus).Value = "=I" & cellnum & "/10"
range("J" & cellnum_plus).Value = "=J" & cellnum & "/10"
range("K" & cellnum_plus).Value = "=K" & cellnum & "/10"
range("L" & cellnum_plus).Value = "=L" & cellnum & "/10"
range("M" & cellnum_plus).Value = "=M" & cellnum & "/10"
range("N" & cellnum_plus).Value = "=N" & cellnum & "/10"
4

1 回答 1

1

为变量赋值时不要使用“set”。Set用于分配对对象的引用,就像您想要获取 Range 对象并分配它一样。喜欢Set myRange = Range("A1:B2")

错误的

Dim cellnum As Integer
Set cellnum = range("B4:B500").Find("TOTALS").Row

正确的

Dim cellnum As Long
cellnum = range("B4:B500").Find("TOTALS").Row

此外,使用 Long 而不是 Integer。无论如何,VBA 都会将 Ints 转换为 Longs,此外还可以避免需要存储更大数字的错误。

于 2013-01-29T18:34:38.467 回答