C列的公式是
=VLOOKUP($B2,Sheet1!$A$2:$C$100,2,0)
它从中获取价值,Sheet1并且可以正常工作。
现在我想提出一个条件
If cell D2:D100 is empty then make C2:C100 empty
C2:C100包含一个 vlookup 公式,我想从单元格中清除公式。
其次,我们如何在宏中运行它=VLOOKUP($B2,Sheet1!$A$2:$C$100,2,0)?
manimatters 有一个很好的解决方案来使用带有 IF 公式的 ISBLANK。如果您仍然想要第二个问题的宏,我在下面提供了它。
此宏会将C2中的公式设置为=VLOOKUP($B2,Sheet1!$A$2:$C$101,2,FALSE),然后将此公式填充到C100。
Sub RestoreVLookup()
Range("C2").FormulaR1C1 = "=VLOOKUP(R[0]C2,Sheet1!R1C1:R101C3,2,FALSE)"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C100"), Type:=xlFillDefault
End Sub
让我们看看不同的部分:
Range("C2").FormulaR1C1- 为单元格分配公式C2。
"=VLOOKUP(R[0]C2,Sheet1!R1C1:R101C3,2,FALSE)"这是分配的公式
R[0]- 偏移量为零的相对行。 R[1]将指向上面的行并R[-1]引用下面的行。
C2- 第 2 列(又名 B 列)
Range("C2").Select- 选择单元格C2
Selection.AutoFill ... Type:=xlFillDefault- 自动填充公式从C2到C100。