excel录制宏 应用公式的的时候出现了问题

2020-10-28 科技 118阅读
在宏中改为:Selection.Formula = "=IF(AND(B1=B2,C1=C2),1,0)"。
FormulaR1C1是公式输入方法
有中括号是相对于选定单元格的相对偏移量,"-"为向左或向上偏移,正数为右或下偏移。
无中括号为相对于选定单元格的绝对偏移量,没有负数
"R"和"C"待变“行”和“列”
如:选定单元格为C8
R[-1]C[-1]为B7单元格,行列都-1,R[1]C[2]为E9单元格,行+1,列+2
R1C1代表A1单元格,R5C6代表F5单元格
所以你原来宏中公式的C1,C2会被解读为第一列和第二列,即:$A:$A=$B:$B
如果希望在宏中实现,可以考虑用以下代码:
功能是,从第二行开始,到B列C列有内容的最大行数为止,在D列根据条件判断并填入结果0或1.
Sub compare()
Dim rmax As Integer, i As Integer
rmax = Application.WorksheetFunction.Max(Range("B65536").End(xlUp).Row, Range("C65536").End(xlUp).Row)
For i = 2 To rmax
Range("D" & i).FormulaR1C1 = "=IF(AND(R[-1]C[-2]=R[0]C[-2],R[-1]C[-1]=R[0]C[-1]),1,0)"
Next
End Sub
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com