用VBA给单元格赋值

来源:百度知道 编辑:UC知道 时间:2024/05/12 05:49:33
我想在 A1单元格内用 vba 赋值 =IF(B3<>"",A2+1,"")

于是
i=3
a = "=IF(B" + CStr(i) + "<>"""",A" + CStr(i - 1) + "+1,"""""
ActiveSheet.Cells(i, "A").Value = a

可是每次运行到 ActiveSheet.Cells(i, "A").Value = a 一步的时候 就会报错,报错信息为:

运行时错误"1004"
应用程序定义或对象定义错误

还忘哪位高手指点指点
bergyan 的说法是错误的, 不信你可以去试试. 列号是可以用"A" 这种方式来引用的

ActiveSheet.Cells(i,1).Value = a

cells(行号,列号) 都是用数字来表示的
---------

受教了,我现在才知道可以用A来表示

i = 3
a = "=IF(B" + CStr(i) + "<>"""",A" + CStr(i - 1) + "+1,"""")"
ActiveSheet.Cells(i, "A").Value = a
改成这样就没问题了,少个括号

要插入函数要用到FormulaR1C1
例如
i = 3

Cells(1, 1).FormulaR1C1 = "=IF(R[" & i & "]C<>"""",2,6)"
这句话就 是根据cells(1,i)的值来决定cells(1,1)是显示2还是6~