将excel公式if/or语句添加到vba代码

将excel公式if/or语句添加到vba代码,excel,vba,Excel,Vba,我有一个vba代码,可以从另一个列表创建一个列表。 我想在E列新列表的每一行中添加以下公式: =IF(或(D2=“TARM01”、D2=“BOUM34”、D2=“LESB01”)、“真”、“假”) 我想将公式添加到此vba代码中: Sub m() Dim c As Range ActiveWorkbook.RefreshAll Range("A:E").Delete For Each c In Sheets("Feuil1").Range("b2

我有一个vba代码,可以从另一个列表创建一个列表。 我想在E列新列表的每一行中添加以下公式:

=IF(或(D2=“TARM01”、D2=“BOUM34”、D2=“LESB01”)、“真”、“假”)

我想将公式添加到此vba代码中:

Sub m()
Dim c As Range
ActiveWorkbook.RefreshAll
Range("A:E").Delete
For Each c In Sheets("Feuil1").Range("b2:b300")
    If c.DisplayFormat.Interior.Color = vbYellow Then
        Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow.Value = c.EntireRow.Value
    End If
Next c
End Sub
我只是不知道如何把它们联系起来。。谢谢你

公式到范围
  • (一个单元格)范围变量(
    dCell
    )的实现使代码更具可读性,并便于确定公式的最后一行
选项显式
分m()
ActiveWorkbook.RefreshAll
范围(“A:E”)。删除
Dim dCell As范围
设置dCell=Sheets(“Feuil3”).范围(“A”和Rows.Count).结束(xlUp).偏移量(1)
调光范围
对于每一个表中c(“Feuil1”)范围(“B2:B300”)单元格
如果c.DisplayFormat.Interior.Color=vbYellow,则
dCell.EntireRow.Value=c.EntireRow.Value
设置dCell=dCell.Offset(1)
如果结束
下一个c
表(“Feuil3”)。范围(“E2:E”和dCell.Row-1)。公式=“=IF(或(D2)”_
&=“TARM01”、“D2=”“BOUM34”、“D2=”“LESB01”)、“真”、“假”
端接头

Sheets(“Feuil3”).Range(“E2:E300”).Formula=“=IF(或(D2=”“TARM01”,“D2=”“BOUM34”,“D2=”“LESB01”),“true”,“false”)”
它工作得很好,但应该在我的新列表末尾停止生成公式。在这种情况下,目前的公式是循环永远@ScottCraner该行不应在循环中。它应该是
结束子行之前的最后一行
对不起,我不是说永远循环,我想说它是从E2:E300开始的,即使新列表只有20行长。我想将公式与loop.sure在新列表中生成的行数进行匹配,但请确保更改公式中的行引用。