【问题标题】:I keep getting "end if without block if" error我不断收到“如果没有阻塞则结束”错误
【发布时间】:2013-07-13 22:26:16
【问题描述】:

我的数据集都在 A 列中,我试图在第 2 行和第 300 行之间读取数据。我需要读取每个单元格以查看其中是否包含信息。如果它没有任何信息,那么它将转到下面的下一个单元格。当它确实在单元格中找到信息时,它需要创建一个新工作簿并将该单元格值用作标题作为工作簿名称并循环到第 300 行。工作簿需要保存在我的桌面上名为 test 的文件夹中。我不断收到“如果没有阻塞则结束”错误

Sub blair() 
      Dim strName As String
      strName = ActiveCell.Value

      For ptr = 2 To 300
          If Cells(ptr, "a") = vbNullString Then
              Cells(ptr, "a") = Cells(ptr, "a").Offset(-1, 0)
          Else
              Set NewBook = Workbooks.Add
              With NewBook
                  .SaveAs Filename:="C:\Users\Marco\Desktop\test\" & strName & ".xls"
                  .Close
          End If
      Next
End Sub

【问题讨论】:

  • 我修复了代码的缩进,这有助于查看错误的位置。

标签: vba if-statement


【解决方案1】:

发生错误是因为您没有使用正确的 End With 语句结束 With 段。 VBA 将 End 解释为结束 With 段,然后继续打开 2 个 Ifs 而没有关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    相关资源
    最近更新 更多