excel - 在活动行中查找与活动单元格值不同的值的前一个单元格地址(左侧)
问题描述
我试图找到一个 VBA 解决方案来查找具有与所选单元格不同的值的前一个单元格(位于同一行)。因此,如果选定的单元格是例如 [N6] (如我的图片),那么我的搜索范围应该是(“A6:N6”),我需要从中找到具有不同单元格值的最后一个单元格(这将是单元格 [ L6] 在我的图片中,因为它是前一个单元格,其值与单元格 [N6] 不同。搜索应从末尾 (N6,M6,L6...) 开始,直到找到第一个匹配项(第一个不同的单元格值) .找到第一个匹配项时选择它。我有数百列,所以我的图片只是为了说明原理。我执行我的vba代码,Private Sub Worksheet_SelectionChange(ByVal Target As Range)
所以当用户用鼠标选择一个单元格时。我得到所需的单元格{=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
解决方案
使用 selection_Change
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Long, col As Long, x
Dim v As String
r = Target.Row
v = Target.Value
Application.EnableEvents = False
For x = Target.Column To 1 Step -1
With Me
If .Cells(r, x) <> v Then
.Cells(r, x).Select
Exit For
End If
End With
Next x
Application.EnableEvents = True
End Sub
推荐阅读
- flutter - 当另一个 TextField 具有焦点时,Flutter GestureDetector 错过了 onTap
- sql - 合并段
- amazon-web-services - AWS Route 53 - 是否可以将 CNAME 路由到用于私有名称服务器的域?
- python - 噪声信号的 1/3 倍频程分析
- icons - 使用 Vuetify 创建自定义图标
- python - 按索引删除 MongoDB 集合中的元素
- android - Google 登录 API 同意书
- c# - 如何通过两个表之间的 id 连接和分组并通过 Id 获取字段总和 - Linq C#?
- javascript - 使用@nuxtjs/tailwindcss 清除了 SCSS 样式
- three.js - 我如何使用三个js加载gltf文件