VBA将单元格放在另一个单元格下方

时间:2013-01-29 18:31:08

标签: excel vba

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

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"

1 个答案:

答案 0 :(得分: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都会将Int转换为Longs,并且您可以避免在需要存储更多数字的情况下出现错误。