【发布时间】:2020-10-02 06:48:06
【问题描述】:
我已经尝试找到一个 VBA 解决方案来查找具有与所选单元格不同的值的前一个单元格(位于同一行)。因此,如果选定的单元格是例如 [N6](如我的图片),那么我的搜索范围应该是 ("A6:N6"),我需要从中找到具有不同单元格值的最后一个单元格(这将是单元格 [ L6] 在我的图片中,因为它是与单元格 [N6] 具有不同值的前一个单元格。搜索应从末尾 (N6,M6,L6...) 向后开始,直到找到第一个匹配项(第一个不同的单元格值) .当找到第一个匹配时然后选择它。我有数百列,所以我的图片只是为了说明原理。我用Private Sub Worksheet_SelectionChange(ByVal Target As Range)执行我的vba代码所以当用户用鼠标选择一个单元格时。我得到了所需的单元格为{=ADDRESS(6;MATCH(2;1/(A6:O6<>"D")))} 但我需要一个 VBA 解决方案来解决我的问题。我当前的 VBA 解决方案将我带到单元格 [I6] 而不是 [L6] 并且我不知道如何编辑我的代码以找到正确的单元格(在我的示例图片中为 [L6])。
Dim rngSel As String, rngStart As String
Dim rngActiveStart As Range
rngSel = ActiveCell.Address(0, 0)
rngStart = Cells(ActiveCell.Row, 1).Address(0, 0)
Set rngActiveStart = Range(rngStart & ":" & rngSel)
Dim c
For Each c In rngActiveStart.Cells
If c <> Target.Value And c.Offset(0, 1) = Target.Value Then
c.Select
MsgBox "Previous different cell: " & c.Address(0, 0)
Exit For
End If
Next
【问题讨论】:
-
您需要选择一个答案,以便主题显示为已回答。