我有以下IF语句 =IF(LEN(F2)>LEN(H2),F2,H2)
这只是检查F2和H2之间哪个更长,并用最长的I2填充。当我将其放在VBA中时,结果如=IF(LEN(G1048558)>LEN(I1048558),G1048558,I1048558)
电子表格中所示
我该如何解决?
Sub PopulateI()
Range("I2").Select
ActiveCell.FormulaR1C1 = _
"=IF(LEN(R[-20]C[-2])>LEN(R[-20]C),R[-20]C[-2],R[-20]C)"
Selection.AutoFill Destination:=Range("I2:I" & Range("F" & Rows.Count).End(xlUp).Row)
结束子
跳过AutoFill
和一步将公式写到整个范围。
如果更简单,则可以使用A1样式的公式代替当前的R1C1样式的公式。
Dim lastRow As Long
lastRow = Range("F" & Rows.Count).End(xlUp).Row
Range("I2:I" & lastRow).Formula = "=IF(LEN(F2)>LEN(H2),F2,H2)"
或如@Scott Craner所述,您可以修复R1C1样式的公式(这是真正的问题):
Range("I2:I" & lastRow).FormulaR1C1 = "=IF(LEN(RC[-3])>LEN(RC[-1]),RC[-3],RC[-1])"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句