【问题标题】:VBA Excel Can't execute code in break mode?VBA Excel无法在中断模式下执行代码?
【发布时间】:2016-06-05 02:22:50
【问题描述】:

我的代码中不断出现此错误:

Sub Button2_Click()
    Dim start As Integer
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim amount As Integer
    amount = 0
    Dim answer As Range
    Set answer = Range("K22:K28")

    For k = Range("K22").Row To Range("K28").Row
        For j = Range("B11").Row To Range("B371").Row Step 7
             amount = amount + j
        Next
        k = amount
        amount = 0
    Next
End Sub

我在这段代码中试图做的是循环遍历 B 列的每 7 个实例,获取它们的值并将它们相加,将总和存储在从 K22 开始的单元格中,然后从下一个 B 再次开始循环后面的单元格,在本例中为 B12,B12 的总和存储在 K23 中,依此类推。我在这里做错了什么?请让我知道,任何指向正确方向的指针都会很棒。

我正在尝试为此制作一个按钮,单击该按钮时将运行我的程序并开始计算和显示。

【问题讨论】:

  • 您的任何一个 For 循环中都没有 Next。我没有分析你的代码是否可以工作,但是如果你在 End Sub 正上方放置一个 Next 语句,然后在 "amount = 0" 正上方放置另一个 Next,那么你的循环语法应该是正确的。
  • 您必须使用关键字Set 将范围分配给范围变量,当您已经知道该行时,也只需使用For k = 22 to 28j 也是如此,k 是整数而不是范围变量,所以只需使用 k = amount
  • 嗯,改变了 Davy C 告诉我的内容以及 newguy 告诉我的大部分内容,但我对 newguy 的解释有点迷茫,可能只是我很愚蠢......我仍然得到但是同样的错误:/不确定还有什么问题。

标签: excel vba


【解决方案1】:

这就是我相信你写的。

Sub Button2_Click()
    Dim b As Long, k As Long
    Dim amount As Double

    For k = 22 To 28
        For b = 11 + (k - 22) To 371 + (k - 22) Step 7
             amount = amount + Range("B" & b)
        Next b
        Range("K" & k) = amount
        amount = 0
    Next k
End Sub

在 VBE 中更改后,使用 Alt+Q 返回您的工作表。

【讨论】:

  • 哇,我认为这是正确的!我必须先对其进行测试,但至少从它为我生成的值来看,它应该是正确的!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
相关资源
最近更新 更多