首页 > 解决方案 > VBA查找值然后向左直到指定值

问题描述

你好,在我的代码中我想找到一个特定的值,然后代码应该向左移动,直到他找到另一个值。

在图片中你可以看到我的桌子: 在此处输入图像描述

因此,如果我在“工作计划”中添加一个新行,那么我希望代码从最后一个值为 1 的单元格向左移动,然后在“存储”中找到第一个“MFG”,然后代码应该向左移动直到他找到“MFG5”。之后,他复制颜色并将其添加到“AGA”(这部分已经解决)。

到目前为止,这是我的代码。

Sub Color_Row()
    Dim lastrow As Long
    Dim rng2 As Range

    ' Find MFG in Storage
    fColumn = ActiveSheet.Cells(lastrow, Columns.Count).End(xlToLeft).Column - 4
    rowIdx = Columns(fColumn).Find(What:="MFG", LookAt:=xlWhole, MatchCase:=False).Row

    ' Now in Storage go to left an find "MFG5"

    ' Copy Color and Add to "AGA"
    ColorToCopy = Cells(rowIdx, fColumn).Interior.Color
    farbe = ActiveSheet.Cells(lastrow, rng2.Column).Find(What:="DEL", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column - 3
    ActiveSheet.Cells(lastrow, farbe).Interior.Color = ColorToCopy
End sub

我希望有人可以帮助我。

标签: vbaexcel

解决方案


为什么不使用 do while 循环?当我做对时,您已经有了值“MFG”正确的单元格?然后你想向左走,直到值为'MFG5',也正确吗?

Dim count As Integer
count = 0 
Do while Worksheets(sheet).Cells(rowIdx, fColumn-count).Value <> "MFG5"
count = count +1
Loop

值为“MFG5”的单元格是 Cells(rowIdx, fColumn-count)


推荐阅读