具有vlookup公式的空单元格

时间:2013-09-14 05:57:13

标签: excel-vba vba excel

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)中运行它?

1 个答案:

答案 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 - 自动填充从C2C100的公式。