使用特定文本VBA启动条件

问题描述 投票:0回答:1

我的代码无法正常工作。对于列颜色中的每一行,其给出“绿色”结果。谁能帮我找出代码有什么问题吗?

数据示例: enter image description here

Sub warna()
Dim wb As Workbook
Dim ws As Worksheet
Dim rng As Variant
Dim vl As Range

Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set rng = ws.Range("B2:B" & ws.Cells(ws.Rows.Count, 1).End(xlUp).Row)
Set vl = ws.Range("B:B")

    For Each vl In rng
        Select Case vl.Formula
            Case "Mango": rng.Offset(0, 1).Formula = "Green"
            Case "Apple": rng.Offset(0, 1).Formula = "Pink"
            Case "Tangerine": rng.Offset(0, 1).Formula = "Orange"
            Case "Cherry": rng.Offset(0, 1).Formula = "Red"
        End Select
    Next vl
End Sub

vba
1个回答
0
投票

按照评论中的建议对代码进行调整

' Set vl = ws.Range("B:B")  <= not needed at all

    For Each vl In rng
        Select Case vl.Formula
            Case "Mango": vl.Offset(0, 1).Formula = "Green"
            Case "Apple": vl.Offset(0, 1).Formula = "Pink"
            Case "Tangerine": vl.Offset(0, 1).Formula = "Orange"
            Case "Cherry": vl.Offset(0, 1).Formula = "Red"
        End Select
    Next vl
© www.soinside.com 2019 - 2024. All rights reserved.