VBA获取单元格在另一个单元格下方

好吧,基本上我有一个销售pipe理系统,列出所有出售的漫画,我试图添加一个方法来添加另一个漫画。 这很好,但我需要更新的公式,显示总计和我已经尝试了下面的代码,但它是抛出一个对象所需的错误,当我尝试将我的细胞因子设置为由我的search返回的行号。

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" 

给variables赋值时不要使用“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转换为Long,并且避免在需要存储更大数字的地方出现错误。