请教EXCEL 中用VBA输入递加公式的问题

需要在:Worksheets("非常用件订货管理").Cells(Y, 11)中输入公式=IF(J5="",IF(I5="",0,$C$1-I5),J5-I5),其中Y为变量每行递加,输入的公式引用的行等于Y,也跟着变化J6,J7.....

其实在EXCEL中直接输入然后双击很简单就搞定,但是我想知道在VBA中怎样实现。因为我有很多这样的公式需要添加,每个文件每天需要更改很多次,所以想一起写入VBA,这样方便些!
非常感谢!

Worksheets("非常用件订货管理").Cells(5, 11) = "=IF(J5="""",IF(I5="""",0,$C$1-I5),J5-I5)"
Worksheets("非常用件订货管理").Cells(5, 11).Copy Range(Cells(6, 11), Cells(20, 11))
第一句代码,在J5单元格设置公式,
第二句代码,将J5复制到J5 -J20区域。相当于你双击一样,只是这里直接指定范围而已,你可以修改后面那个cells(20,11)指定你要输入该公式的区域即可、
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-05
应设置单元格格式,因为你要使用VBA,应该知道如何打开。
你要处理的表的代码,复制代码如下:
私人小组Worksheet_Change(BYVAL目标为范围)
如果Target.Column = 1'在这里是在A列,并如果B列中的数字为2,所以
如果len(TRIM(Target.Value))<10的长度判断
Application.EnableEvents = FALSE暂时不再触发Change事件/> Target.NumberFormatLocal =“@”'设置单元格为文本格式,或其他自动0
Target.Value =格式(修剪“(Target.Value)000000000的#;)的格式
Application.EnableEvents =

结束如果结束如果
END SUB
第2个回答  2013-03-05
你希望后面的公式也跟随着变量的胡变化而变化,很简单的啊,假如Y=5时,Worksheets("非常用件订货管理").Cells(5, 11)中输入公式=IF(J5="",IF(I5="",0,$C$1-I5),J5-I5),只要将公式改一下就好了,如下:Worksheets("非常用件订货管理").Cells(Y, 11)=“=IF(J“ & Y &”="",IF(I“ & Y &”="",0,$C$1-I“ & Y &”),J“ & Y &”-I“ & Y &”)”
这样的话后面的公式就会随着行变量的变化而变化了,
希望对你有所帮助追问

非常感谢你的回答!就你理解了我的意思!
我也是这样做的,但是提示:运行时错误”1004“,应用程序定义或对象定义错误!
我修改了一哈Worksheets("非常用件订货管理").Cells(Y, 11) = Application.Evaluate("=IF(J" & Y & "="",IF(I" & Y & "="",0,$C$1-I" & Y & "),J" & Y & "-I" & Y & ")")
过后没提示错误,但是输入的结果是#VALUE!

追答

你将Excel发给我的邮箱吧,我帮你看看,我的邮箱:[email protected]

第3个回答  2013-03-05
DIM Y AS LONG
Y=2 TO 100
这里是你自己写的代码
NEXT
END SUD
相似回答