首页 > 解决方案 > 在 4 列中粘贴 4 个公式

问题描述

我今天来这里是因为我作为实习生(ahum excel 支持/咖啡制造商)的任务是找到一种方法来放置 4 种不同的公式并应用它们

现在我已经尝试想出一个公式,但我不知道我是否朝着正确的方向前进:

Sub test()
Dim ws As Worksheet: Set ws = Sheets("Detail")
    Dim lr As Long
    lr = ws.Cells(Rows.Count, "F").End(xlUp).Row

    For Each cell In ws.Range(ws.Cells(2, "F"), ws.Cells(lr, "F"))

       cell.Value="IF(H2="NB","",AY2)"

    Next cell
    End Sub

但我有这个基本上放在并适用于 4 列:

"MFR    CUSTLINE#   PRICE (DYP) DELIVERY
=IF(H2="NB","",AY2) =A2 =IF(P2="","NB",P2)  =IF(BR2>(D2+AM2),"STOCK",IF(AR2="0 Weeks","",SUBSTITUTE(AR2," Weeks"," WKS")))
"

4 MFR CUSTLINE PRICE 和 DELIVERY 只是列的开销,所以第 1 行,然后我必须将公式应用于列的底部,因为我可以有 5 行或 15 000

在此先感谢您的帮助和理解,因为我在 vba 或编程中的基础即使不是更少。

标签: vbaexcel

解决方案


不需要循环:

Sub test()
Dim ws As Worksheet
Set ws = Sheets("Detail")

Dim lr As Long
lr = ws.Cells(Rows.Count, "F").End(xlUp).Row

Dim arr
arr = Array("MFR", "CUSTLINE#", "PRICE (DYP)", "DELIVERY")
ws.Range("F1:I1").Value = arr

arr = Array("=IF(H2=""NB"","""",AY2)", "=A2", "=IF(P2="""",""NB"",P2)", "=IF(BR2>(D2+AM2),""STOCK"",IF(AR2=""0 Weeks"","""",SUBSTITUTE(AR2,"" Weeks"","" WKS"")))")
ws.Range("F2:I" & lr).Formula = arr
End Sub

推荐阅读