VBA嵌套的FOR循环适用于首次出现,但忽略了以下情况

时间:2019-07-19 10:33:50

标签: excel vba loops iteration ignore

我是VBA的新手,并且在另一个嵌套的FOR循环中苦苦挣扎,以在移动到下一行之前水平检查表的每一行。

目标: 我需要我的代码忽略所有值为0的单元格,并对非零单元格进行一些基本的(无关的)操作。

问题: 我的代码适用于该行的第一个非零单元格,但是会忽略同一行以及随后的行中的所有其他非零单元格。

代码基本结构: FOR循环1:从一行转到下一行; FOR循环2 :(位于循环1中)从行中的一个单元格移至下一个单元格; 如果::(位于循环2中)检查非零单元格并进行操作

我可能忘记了这可能是一个愚蠢的细节,但是我找不到它,也没有通过搜索类似的主题...

对于缺少代码优化的问题,我们深表歉意。

我试图重新组织循环,以反转IF Then结构,以便首先忽略零单元格,但随后我找不到找到下一个循环2的方法。

Dim RNB As Long, ROutput As Integer, VBAR As Integer, VBAC As Integer, i As Long, j As Long


'RNB        = amounts of rows to check in input table;
'ROutput    = the row number of the output table where to paste the desired values;
'VBAR       = row number of the first cell to check in the Input table;
'VBAC       = column number of the first cell to check in the Input table;
'i          = the counting variable for the vertical FOR loop; and
'j          = the counting variable for the horizontal FOR loop.

'Vertical parent FOR loop
For i = 1 To RNB

'Horizontal nested FOR loop: cells with a null value are ignored and the remaining ones are copied in the Output worksheet, in the first empty row available

         For j = 1 To 11

            If Cells(i + [2] - 1, [2] + 2 + j).Value <> 0 Then

                'Copy/paste of the value of the identified cell and save the row number for the remaining information to add in next steps
                [Input1].Select
                Cells(i + [VBA_Row].Value - 1, [Segment].Value + 2 + j).Copy

     '[Irrelevant code that actually works perfectly for the first iteration (I will display it if necessary)]


            Else: End If
        Next j
   Next i

没有显示错误消息。

代码执行第一次迭代的工作,但通常如果行1的前两个单元不等于零:代码执行单元1的工作,忽略单元2并转到下一行以忽略所有其他细胞。

非常感谢您的帮助。

0 个答案:

没有答案