gpt4 book ai didi

vba - 做直到循环,如果然后 VBA Excel

转载 作者:行者123 更新时间:2023-12-04 22:32:29 29 4
gpt4 key购买 nike

更新:
我得到的代码正是我想要它做的事情(粘贴在下面),尽管有些人可能不同意我的方法(我会接受反馈,因为我是 100% 的新手)。

我正在尝试创建一个简单的 VBA 代码来运行带有 if then 语句的循环 - 如果该语句为真,则停止循环。如果该语句直到最后都不为真,则在单元格为 IsEmpty() 时停止循环。

这就是我到目前为止所拥有的。这显然是不正确的并且没有运行,但我希望这次尝试能帮助您了解我正在尝试做的事情。

Sub runoutDateLoop()
r = 8
Do Until IsEmpty(Cells(r, 1))
c = 24
Do Until Cells(r, c - 1).Value < 1 = True
If Cells(r, c).Value < 1 Then
Cells(r, 18).Value = Cells(7, c)
Else
Cells(r, 18).Value = Cells(7, c)
End If
c = c + 1
Loop
r = r + 1
Loop
End Sub

我正在尝试创建一个循环,直到 if 语句为真。 if then 语句很简单——如果数字是负数,那么我们希望单元格 r,18 复制到单元格 7,c。如果不是,则循环发生,直到有一个负数,或者如果从来没有一个负数,则直到单元格为空。我希望这对每一行也有一个双 Do Until 循环。

请问有人有什么想法吗??

谢谢!

最佳答案

退出 Do尽早循环,使用 Exit Do .由于您有两个嵌套循环,因此您需要一个标志来退出外部循环。

Sub RunoutDateLoop()
Dim r As Long, c As Long
Dim Found As Boolean
r = 8
Do Until IsEmpty(Cells(r, 1))
c = 24
Do Until IsEmpty(Cells(r, c))
If Cells(r, c).Value < 1 Then
Cells(r, 18).Value = Cells(7, c)
Found = True
Exit Do 'Exit the inner do
End If
c = c + 1
Loop
If Found Then Exit Do 'exit the outer do
r = r + 1
Loop
End Sub

注意:我对循环中的逻辑不做评论,有点不清楚您的数据是什么,以及您需要的确切逻辑(例如,如果数字是负数 vs If Cells(r, c).Value < 1 )

关于vba - 做直到循环,如果然后 VBA Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51716955/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com