2

首先,我想指出我是 VBA excel 编码的初学者。我似乎不知道如何在循环中为以下问题编写循环:我的 excel 在 D 列中有以下信息:D2:12,D3:12,D4:5

我试图自动化列 E 如下:E1 到 E12 将是 D2 中的信息,E13 到 E25 将是 D3 中的信息。等等...达到某个既定阈值。

我目前已经编写了以下代码:

Sub salairemensuelle()

Dim xrow As Integer, xcol As interger, n As Integer, nbrdecolonnedemois As Integer 

xrow = 2 

xcol = 4

Do Until Cells(xrow, xcol).Value >= 25 'threshold of 25
        n = Range("D65536").End(xlUp).Row 'finding row of D column
        For nbrdecolonnedemois = 1 To n

End Sub

我似乎被困在这里,因为我不知道如何循环第一个 D 列然后关闭两个循环。

有没有人可以看看。谢谢

4

1 回答 1

0

我认为您不需要两个循环。但是,您的两个循环都没有关闭。

DoLoop, (或Loop While等)关闭 a 例如:

Do Until i >= 10

    i = i+1

Loop

您使用该语句创建一个For循环Next,例如:

For i = 1 to 10
    MsgBox i
Next

在您的情况下,我认为您可以在阈值条件获得时使用For ... Next带有Exit For语句的循环:

Sub salairemensuelle()

Dim xrow As Integer, xcol As interger, n As Integer, nbrdecolonnedemois As Integer 

xrow = 2 
xcol = 4

        n = Range("D65536").End(xlUp).Row 'finding row of D column
        For nbrdecolonnedemois = 1 To n
            'The next line terminates the loop if threshold of 25 is met:
            If Cells(xrow, xcol).Value >= 25 Then 
                Exit For
            Else:
                '### The rest of your code operates inside this ELSE block
            End If

        Next
End Sub
于 2013-08-27T03:39:56.717 回答