首页 > 解决方案 > For循环内的if语句?

问题描述

我正在尝试在 Excel 中使用此代码从 AW 列中获取产品颜色,然后将 J 列中的值替换为该产品颜色的 SKU。它可以工作,除了它将公式粘贴到每一行的 AY 列中,而不仅仅是 J 列值为“WCblack”的行,这样会导致它运行得很慢。

有什么想法可以让我只将公式放在 J 列值为“WCblack”的行中吗?谢谢!

Sub Macro1()
Dim lastRow As Long, i As Long

    lastRow = Cells(Rows.Count, "K").End(xlUp).Row
    For i = 2 To lastRow
        If Cells(i, "J").Value = "WCblack" Then
            Range("AY2:AY" & lastRow).Formula = "=TRIM(LEFT(AW2,FIND(CHAR(10),AW2)-1))"
                If Cells(i, "AY").Value = "Color: Red" Then
                    Cells(i, "J").Value = "WCred"
                ElseIf Cells(i, "AY").Value = "Color: Gold" Then
                    Cells(i, "J").Value = "WCgold"
                ElseIf Cells(i, "AY").Value = "Color: Blue" Then
                    Cells(i, "J").Value = "WCblue"
                End If
        End If
    Next

End Sub

标签: excelvba

解决方案


推荐阅读