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)
中运行它?
答案 0 :(得分: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
- 第二栏(又名B栏)
Range("C2").Select
- 选择单元格C2
Selection.AutoFill ... Type:=xlFillDefault
- 自动填充从C2
到C100
的公式。