为什么我的 For Each 循环会跳过数组中的某些项目?

奥利弗·塞西拉

我的完整代码如下:

FirstRow = Columns("B").Find("B").MergeArea.Row
LastRow = Columns("B").Find("B").MergeArea.Row + Columns("B").Find("B").MergeArea.Rows.Count - 1

FirstRow2 = Columns("B").Find("N").MergeArea.Row
LastRow2 = Columns("B").Find("N").MergeArea.Row + Columns("B").Find("N").MergeArea.Rows.Count - 1

Range("A" & LastRow + 1).EntireRow.Insert
Range("A" & LastRow2 + 2).EntireRow.Insert

Range("Q" & LastRow + 1) = 50
Range("Q" & LastRow2 + 2) = 100

Dim Col, ColArr, CalcRow, CalcRowArr, FRow, FirstRowArr, LRow, LastRowArr
ColArr = Array("R", "W", "Y")
CalcRowArr = Array(LastRow + 1, LastRow2 + 2)
FirstRowArr = Array(FirstRow, FirstRow2 + 1)
LastRowArr = Array(LastRow, LastRow2 + 1)

For Each Col In ColArr
For Each CalcRow In CalcRowArr
For Each FRow In FirstRowArr
For Each LRow In LastRowArr

Range(Col & CalcRow).Formula = "=SUM(" & Col & FRow & ":" & Col & LRow & ")"

Next LRow
Next FRow
Next CalcRow
Next Col

基本上我正在尝试转换这 6 行代码:

Range("R" & LastRow + 1).Formula = "=SUM(R" & FirstRow & ":R" & LastRow & ")"
Range("W" & LastRow + 1).Formula = "=SUM(W" & FirstRow & ":W" & LastRow & ")"
Range("Y" & LastRow + 1).Formula = "=SUM(Y" & FirstRow & ":Y" & LastRow & ")"

Range("R" & LastRow2 + 2).Formula = "=SUM(R" & FirstRow2 + 1 & ":R" & LastRow2 + 1 & ")"
Range("W" & LastRow2 + 2).Formula = "=SUM(W" & FirstRow2 + 1 & ":W" & LastRow2 + 1 & ")"
Range("Y" & LastRow2 + 2).Formula = "=SUM(Y" & FirstRow2 + 1 & ":Y" & LastRow2 + 1 & ")"

进入我上面代码中的数组循环:

Dim Col, ColArr, CalcRow, CalcRowArr, FRow, FirstRowArr, LRow, LastRowArr
ColArr = Array("R", "W", "Y")
CalcRowArr = Array(LastRow + 1, LastRow2 + 2)
FirstRowArr = Array(FirstRow, FirstRow2 + 1)
LastRowArr = Array(LastRow, LastRow2 + 1)

For Each Col In ColArr
For Each CalcRow In CalcRowArr
For Each FRow In FirstRowArr
For Each LRow In LastRowArr

Range(Col & CalcRow).Formula = "=SUM(" & Col & FRow & ":" & Col & LRow & ")"

Next LRow
Next FRow
Next CalcRow
Next Col

但是,我的最终结果是分别跳过 FirstRowArr 和 LastRowArr 中的第一项(FirstRow 和 LastRow),这意味着我的第一组 3 个值(“R”、“W”、“Y”和 LastRow + 1)成为重复我的第二组 3 个值(“R”、“W”、“Y”和 LastRow2 + 2)。

罗里

根据我之前的评论,您只需要两个循环:

For Each Col In ColArr
   Dim n as long
   For n = lbound(calcrowarr) to ubound(calcrowarr)
      range(col & calcrowarr(n)).formula = "=SUM(" & Col & FirstRowArr(n) & ":" & Col & LastRowArr(n) & ")"
   next n
Next Col

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的for循环会跳过数组中的最后一个值?

为什么跳过数组中的项目?

为什么我的 For Each 循环只迭代一次?

为什么$ .each()比jquery中的for循环慢?

为什么我的对象集合上的简单for-each循环不起作用(JQuery)?

为什么我的For Each循环这么慢?有没有更有效的方法?

For Each 循环提前结束,我不知道为什么

为什么我的代码会跳过某些节点?

为什么我的python程序会忽略/跳过某些情况

为什么for-each在我的xslt文件中不起作用

为什么在Ruby中使用keep_if会跳过数组中的第一个元素?

为什么$ .each()不遍历每个项目?

在C ++中的for-each循环中,为什么向量中的项目不会更改?

为什么我不能在透明化中使用十六进制颜色的$ var(在@each循环内)

为什么我的使用“for-each 循环”的线性搜索代码不适用于混合输入?

为什么我的for循环跳过列表中的元素?

为什么当我在单独的函数中使用$(this)并在.each()中调用它时不起作用?

为什么 Processing.py 跳过数组的倒数第二个项目?

为什么我的for循环被忽略?

为什么 Python 会忽略我的输入并跳过我的 if 语句?

为什么我的自动递增ID会在SQL Server中跳过数字?

为什么我的循环只返回“数组”

为什么javascript会跳过某些功能?

为什么xsl:for-each-group缺少某些元素?

为什么Android Studio希望我使用For Each而不是For Loop?

为什么我的苗条 {#each} 块没有反应?

为什么我的For ... Each语句完整地完成?

为什么这个函数会破坏我数组中的值?

在python中,我的数组值会自己改变,为什么?