永发信息网

Excel VBA 向动态变化区域加入或删除公式

答案:2  悬赏:60  手机版
解决时间 2021-03-07 14:43
Excel中有一段代码是这样的:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target.Row >= 2 Then
Application.EnableEvents = False
If Target.Value = "" Then
Range("C" & Target.Row).Resize(1, 5).ClearContents
Else
Range("C" & Target.Row).Formula = "=AVERAGE(INDIRECT(" & Chr(34) & "B2:B" & Chr(34) & "&COUNTA(B:B)))"
Range("D" & Target.Row).Formula = "=B" & Target.Row & "-C" & Target.Row
Range("E" & Target.Row).Formula = "=STDEV(INDIRECT(" & Chr(34) & "B2:B" & Chr(34) & "&COUNTA(B:B)))"
Range("F" & Target.Row).Formula = "=(B" & Target.Row & "-C" & Target.Row & ")/E" & Target.Row
Range("G" & Target.Row).Formula = "=$J$3+$J$3/5*F" & Target.Row
End If
Application.EnableEvents = True
End If
End Sub

这一段代码有一个缺陷,就是如果数据是复制过来的,那么Change事件只能触发复制过来的第一个单元格的事件,其它单元格无法触发。
并且如果是选中一片B列区域删除,也只会删除选中的第一行的5个单元格,其它行的无法删除。

请问这样如何解决?是要用For吗?
最佳答案
For 是一个办法。
resize那里,用resize(selection.rows.count,5)试试看
全部回答
sheet1.range("a2:c4").clearcontents就可以了。 删除指定区域的内容
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
计算下列各题,(能简算的要简算).谢谢,要过程,
女生 高一 身高161-162 体重100斤 胸围83 腰
吃多了黑米人会不会变黑
艺海车饰这个地址在什么地方,我要处理点事
患儿,15天。口内舌上白屑成片,烦躁多啼。其
为什么有很多网站对opera的支持都不是很好?
【分裂结局】精神分裂症病人的结局大致有以下
凡仔汉堡(北门路万客隆店)在什么地方啊,我要
圣人的爱情观?
梦幻定身符能封破血狂攻吗 还有fc封率多少
38.(18分)材料:有专家分析迪拜危机的原因:
柴油是用什么提炼的?
8点15减去7点40的结果是怎样算出来的
怡心苑这个地址在什么地方,我要处理点事
国民革命运动的性质是A. 反封的资产阶级政治
推荐资讯
补写出下列名篇名句中的空缺部分。(限选其中
给心血管病人送什么礼物合适?
评选你最喜欢的动漫(10个)
我手机微信接收信息的系统声音怎么没有了
按照资金融通是否付息和是否具有返还性,融资
协整方程式可以取代OLS方程式吗
除去CO2中的HCL一般是用饱和的NAHCO3但我想用
qq上在哪里能找到我收到的系统消息记录?自己
直到我回家,我的妈妈才去睡觉英文
江西省金溪县对外经济贸易公司在什么地方啊,
米徒无线鼠标复位后灯就不亮
有以下程序: void f(int b[]) int i;
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?