gpt4 book ai didi

vba - 为什么这个应该对每一列求和的程序只在一列之后就停止了?

转载 作者:行者123 更新时间:2023-12-02 23:47:30 27 4
gpt4 key购买 nike

该程序创建一个数字表,然后尝试逐行求和。我正在使用 IsBlank() 来测试最上面的单元格是否为空白。如果它为空,则应结束循环,但如果不是,则循环应继续进行。然而,它在第一次循环后一直结束。这是为什么?

我有一种感觉,这真的很明显。

编辑:我应该注意到整个“计数器”的东西都在那里,因为如果这有效的话我将开始尝试它。但它不起作用,所以我来了!

Option Explicit
Dim Counter As Long
Dim i As Long
Dim col As Long
Dim row As Long

Sub SumRange()
For col = 1 To 8
For row = 1 To 6
Cells(row, col) = Rnd
Next row
Next col
Counter = 6
For i = 1 To 9
If IsEmpty(Cells(1, i)) = False Then
Cells(Counter + 1, i) = Application.WorksheetFunction.Sum(Range(Cells(1, i), Cells(Counter, i)))
Else
End If
End
Next
MsgBox Cells(4, 5)
End Sub

最佳答案

有两个问题:

  1. End 语句不正确。如果我没记错的话,End 的意思是结束程序。您必须明确说明要结束的内容(End IfEnd With、...)。在这种情况下,您的意思是End If

  2. 需要使用Exit For跳出for循环。我认为您的意思是它是您当前的 End If 语句所在的位置。

我不确定您要做什么,但您也可以考虑使用带有条件 While Not IsEmpty(Cells(1, i)) 的 while 循环,然后递增从循环内计数器i。对我来说,这比带有跳转的 for 循环感觉好一点。

关于vba - 为什么这个应该对每一列求和的程序只在一列之后就停止了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656373/

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