excel - VBA如何根据条件跳过行并在满足特定数量的条件时停止
问题描述
我正在为有两种奖品的比赛运行数据文件。二等奖基于一等奖,但使用 VBA,我很难跳过行并在特定条件(计数)处停止。
输出看起来像这样
Prize2 只有 2 个可用,我希望 VBA 代码在第 2 个成功的 Prize2 时停止它
我查看了 Do Until Loops 和 For...Next 选项,但没有获得成功的代码来停止 Prize 2 列表而不填满整个列或出现错误
下面是我使用的代码来获取现在的表格。我之前有前两行的代码,但是如果植物没有一等奖,那么二等奖就不会显示。
'Portion using Prize 1 to determine Prize 2
Dim LastRowDest As Long
Sheets("ThisSheet").Select
LastRowDest = Range("B" & Rows.Count).End(xlUp).Row
Range("G2:G" & LastRowDest).FormulaR1C1 = "=IF(RC[-1]=""Prize1"",""Prize2"","" "")"
这就是有两个 Prize2 可用的输出的样子
解决方案
这是最终工作的代码。希望我能正确地概括它
Dim P1Range As Range
Dim P1Cell As Range
Dim P2Range As Range
Dim Counter As Long
Set P1Range = Range("F7:F" & LastRowDest)
Set P2Range = Range("G7:G" & LastRowDest)
Counter = Application.WorksheetFunction.CountIf(P2Range, "Prize2")
For Each P1Cell In P1Range
If P1Cell Like "*Prize1*" Then
Counter = Application.WorksheetFunction.CountIf(P2Range, "Prize2")
'MsgBox Counter
If Counter < 2 Then
P1Cell.Offset(0, 1).Formula = "Prize2"
End If
End If
Next P1Cell
推荐阅读
- java - Java Spring Boot 使用 Redis 进行基本身份验证
- html - CSS 和 HTML 菜单
- r - 如何从包含数据和名称的数据框中创建具有指定行和列名称的矩阵
- powershell - 螳螂 issue_relationship_add
- javascript - React - Redux-Form Remote Submit
- android - 如何在颤动中动态改变步进器的步数?
- java - Java JDBC 程序在从表中获取特定行时抛出 SQL 语法错误
- javascript - 即使有断言,Jest 也会将测试标记为成功
- java - ItemClickListener 在带有 onclick 的 Fragment RecyclerView 中不起作用
- python - 如何在python中以编程方式比较动态变量