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
。