2017-09-25 57 views
0

我想在列“D”中的相应单元格为空时将vlookup公式添加到多列(E:I)。例如,当单元格D113和向下空白时,我想向单元格E113添加“= VLOOKUP(A2,Sheet4!$ A:$ L,5,False)”,然后向下并重复显示列G,H,I,等等一列中的VLOOKUP特定单元格在另一个空格中有空条件

但是我现在的代码如下所示将vlookup添加到列E & lastrow中的所有单元格,覆盖E113上方的现有数据。代码如下:

Sub PrevInactives() 
Dim ws As Worksheet 
Dim lastrow As Long 
    lastrow = Range("A2").End(xlDown).Row 
For Each Cell In Sheets(1).Range("D2:D" & lastrow) 
Select Case Cell.Value 
    Case "" 
    If Cell.Offset(1, 0) = "" Then 
    Range("E2:E" & lastrow).Formula = "=VLOOKUP(A2,Sheet3!$A:$L,5,FALSE)" 
    End If 
End Select 

Next Cell 

End Sub 

有没有人有解决我的困境?

感谢,

杰森

编辑,17年9月26日:以下是更新后的代码我加了进来,但是当我运行这个宏,什么都不会发生。

Sub PrevInactives() 
Dim r As Long 
For r = 2 To lastrow 
    lastrow = Range("A2").End(xlDown).Row 
    If IsEmpty(Cells(r, 4).Value) And Not IsEmpty(Cells(r - 1, 4).Value) Then 
     Range(Cells(r, 5), Cells(r, 9)).Formula = "=VLOOKUP($A2" & r & ",Sheet4!$A:$L,False)" 
    End If 
Next r 
End Sub 

回答

0

如果我理解正确的话,你想拥有你的循环东西,如内部:

而不是使用每个作为环,可以循环当r = 2使用LR上面的例子:

Dim r as Long 
For r = 2 to lastrow 
    If IsEmpty(Cells(r,4).Value) AND Not IsEmpty(Cells(r-1,4).Value) Then 
     Range(Cells(r,5),Cells(r,9)).Formula= "=VLOOKUP($A" & r & ",Sheet3!$A:$L,5,FALSE)" 
    End If 
Next r 

本质上来说,问题是,你正在使用:

Range("E2:E" & lastrow).Formula = "=VLOOKUP(A2,Sheet3!$A:$L,5,FALSE)" 

当你想要Cell.Formula =“”;如果情况是真的,你将公式添加到所有这些单元格中。


编辑,20170926:

修复代码:

Sub PrevInactives() 
    Dim r As Long, lastrow as Long 
    lastrow = Range("A2").End(xlDown).Row 'Need to define before looping 
    'You could use lastrow = Cells(Rows.Count, 1).End(xlUp).Row 
    For r = 2 To lastrow 
     If IsEmpty(Cells(r, 4).Value) And Not IsEmpty(Cells(r - 1, 4).Value) Then 
      Range(Cells(r, 5), Cells(r, 9)).Formula = "=VLOOKUP($A" & r & ",Sheet4!$A:$L,False)" 'You had in A2&r, so it would be A22, A23, ..., A2&LR 
     End If 
    Next r 
End Sub 
+0

当单元格的范围存在添加配方,你可以有结局的范围内细胞(LASTROW,9 )如果您想将该公式添加到所有单元格,而不是通过D循环遍历空白。另外,我在vlookup中的A2之前添加了一个$。 – Cyril

+0

感谢Cyril,我把这段代码放进去了,但是当我运行这个宏时没有任何反应。我错过了几行代码? –

+0

@JCas你可以发布你现在输入的代码,并附加到你的文章吗?我必须看到你投入了什么才能更好地理解这个问题。 – Cyril

相关问题