【发布时间】:2018-06-03 03:24:46
【问题描述】:
我使用带有单选按钮的代码(请参阅最后一个代码)在第 15 行中插入新行,这会将旧数据向下推,同时将相同的公式复制到曾经存在的第 15 行中(在行中) 15) 在点击按钮之前。
单击按钮后,我可以在 E15 中输入 3 位数据,然后按回车键,所有公式都会根据 E15 中输入的内容计算跨行 15。
现在我喜欢代码的执行方式,但出于某种原因,CG15 中的公式从
=IF(CF15=1,IF(CF15<>"",COUNTBLANK(INDEX(CF14:CF$14,MATCH(9.99999999999999E+307,CF14:CF$14)):CF15),""),"")
到
=IF(CF15=1,IF(CF15<>"",COUNTBLANK(INDEX(CF13:CF$14,MATCH(9.99999999999999E+307,CF13:CF$14)):CF15),""),"")
我不知道问题出在 CG15 中的代码还是公式中 这是一个“测试”文件,下面是代码
Sub AddNewDrawing()
'
' AddNewDrawing Macro
'
'
Rows("15:15").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A16:ua16").Select
Selection.AutoFill Destination:=Range("A15:ua16"), Type:=xlFillDefault
Range("A15:ua16").Select
Range("E15").Select
Selection.ClearContents
End Sub
这可能很简单,但我很难过。我需要公式保持不变而不改变。
这里是关于每个代码的功能的更深入的信息。 CF15 列有这个公式,如果满足条件,则返回 1。
=IF(COUNTIF($AW16:$CC18,O15),1,IF(COUNTIF($AW16:$CC18,P15),1,IF(COUNTIF($AW16:$CC18,Q15),1,"")))
CG15 列有这个公式,它计算 CF15 列中每个 1 之间的跳过(空白单元格)。 注意:CG$14 有一个永久的 0(零),作为计数开始的占位符。
=IF(CF15=1,IF(CF15<>"",COUNTBLANK(INDEX(CF14:CF$14,MATCH(9.99999999999999E+307,CF14:CF$14)):CF15),""),"")
谢谢
【问题讨论】:
-
我不明白
=IF(CF15=1,IF(CF15<>"",...部分。如果 CF15 为 1 那么它不能是 "" 那么第二个条件 (IF(CF15<>"",) 是什么? -
这可能是多余的,但它是说,如果 CF15 中有 1 或其他任何内容(小于或大于空白“”)(不必严格为 1) , 然后条件的 coutntblank 等部分适用。也许公式的 CF15"" 部分不需要存在,因为至少对于计算而言,CF15 中只有 1。无论哪种方式都可以,但是插入新行会将 CF14 更改为 CF13,这是我不想要的
标签: vba excel excel-formula radio-button