vba - 从右到左搜索(多个范围)
问题描述
所有我有下面的For Each
循环,它返回最后一列的值<> 0。虽然我确信有更有效的方法,但这很好用。
Dim LastColFcst As Integer
For Each p In Range("E44:P44,S44:AD44,AG44:AR44,AU44:BF44,BI44:BU44")
If p.Value <> 0 And p.Offset(-35, 0).Value = "Forecast" Then
LastColFcst = p.Column
End If
Next p
我现在希望为不同的行 86,88,95,99 获得值 <>0 的最后一列。我可以通过复制并粘贴四行的原始代码并使用 IF 语句来实现这一点。然而,这似乎是一种非常低效的方式来完成一项简单的任务。下面的示例代码;**编辑完整示例(下面发布的长效低效代码)
Dim LastColFcst As Integer
For Each p In Range("E86:P86,S86:AD86,AG86:AR86,AU86:BF86,BI86:BU86")
If p.Value <> 0 And p.Offset(-77, 0).Value = "Forecast" Then
LastColFcst = p.Column
End If
Next p
For Each L In Range("E88:P88,S88:AD88,AG88:AR88,AU88:BF88,BI88:BU88")
If L.Value <> 0 And L.Offset(-79, 0).Value = "Forecast" And L.Column > LastColFcst Then
LastColFcst = L.Column
End If
Next L
For Each J In Range("E95:P95,S95:AD95,AG95:AR95,AU95:BF95,BI95:BU95")
If J.Value <> 0 And J.Offset(-79, 0).Value = "Forecast" And J.Column > LastColFcst Then
LastColFcst = J.Column
End If
Next J
For Each K In Range("E97:P97,S97:AD97,AG97:AR97,AU97:BF97,BI97:BU97")
If K.Value <> 0 And K.Offset(-88, 0).Value = "Forecast" And K.Column > LastColFcst Then
LastColFcst = K.Column
End If
Next K
谁能建议解决这种情况的最佳方法是什么?
解决方案
推荐阅读
- mininet - sombebody 可以帮助我如何在 pox 控制器中使用 Bellman-ford 算法吗?我找不到任何可以在 pox 中运行的 bellman-ford 模块
- selenium - 如何单击网站中的下载按钮并在python中下载xlsx
- python - 扩展生成的 TestApp 以验证 pyqt5 按钮单击
- python - python中有没有更好的方法来比较不同列表中的字典?
- ipython - Ipython 和 PIL 库函数不起作用
- tensorflow - 将 tf.dataset 转换为 PyTorch 数据集?
- flutter - Flutter 中的 Widget 生命周期是如何工作的?
- python - Django:有没有办法在 ManyToManyField 中手动排序对象?
- flutter - flutter Column Childs完全居中
- html - django 消息警报退出按钮不起作用