excel - 双“根据列中的值选择行”
问题描述
我需要根据“C”列中的标准 value="REZ" 选择整行。
Dim c As Range
Dim rngG As Range
For Each c In Intersect(ActiveSheet.UsedRange, Columns("C"))
If c = "REZ" Then
If rngG Is Nothing Then Set rngG = c.EntireRow
Set rngG = Union(rngG, c.EntireRow)
End If
Next c
rngG.Select
每个选定的行在“J”列中都有一些值。
我现在需要另外选择包含从第一步获得的值的所有整行。
现在我们知道列“J”中的行值,在这种情况下是“27.2.12”。
因此,现在除了我们选择的内容之外,我们还需要选择所有包含“27.2.12”的行,这总是在步骤 1 中找到并选择的行之后直接有一些行,并且永远不会与列中的每个值完全匹配“ J”是独一无二的。
我想象两个 IF 函数,其中第二个函数从第一个函数的结果中获取信息。
工作簿示例:https ://easyupload.io/yewg9o
我用黄色突出显示了在步骤 1 中选择的“REZ”行,我希望根据步骤 1 选择的单元格用绿色突出显示。
解决方案
试试这个:
Sub Tester()
Dim c As Range, ws As Worksheet
Dim rngG As Range, lastJ, rngJ As Range
Set ws = ActiveSheet
For Each c In Intersect(ws.UsedRange, ws.Columns("C"))
Set rngJ = c.EntireRow.Columns("J")
If c = "REZ" Then
AddRange rngG, c.EntireRow
lastJ = rngJ.Value 'remember the J value
Else
'not REZ, but see if we're to check for matching J values
If Len(lastJ) > 0 Then
If rngJ.Value Like lastJ & "*" Then
AddRange rngG, c.EntireRow
Else
lastJ = "" 'stop checking on first non-match
End If
End If
End If
Next c
rngG.Select
End Sub
'Utility sub for building up a range
Sub AddRange(rngTot As Range, rngAdd As Range)
If rngTot Is Nothing Then
Set rngTot = rngAdd
Else
Set rngTot = Application.Union(rngTot, rngAdd)
End If
End Sub
推荐阅读
- javascript - 在角度 8 中从 index.html 向组件内注入动态 html
- django - Django制作与其他字段(对象)值相关的字段
- ios - iOS 上下文菜单 API 无法显示链接演示内容
- angular - 不可注入的服务仍然是服务还是使用不同的东西更好?
- c# - 如何在复制到另一个流期间修改/转换原始流数据?
- flutter - 使用 DI 将 BLoC 作为单例注入的效果以及在哪里关闭流?
- apache-kafka - 增量协作重新平衡导致连接器不平衡
- python - ValueError:无法将大小为 1 的数组重塑为形状 (1,43)
- templates - 如何使用来自另一个项目的文档模板
- powershell - 在 PowerShell 脚本中运行 quser.exe 在 IDE 中有效,但在作为服务运行时无效