首页 > 解决方案 > 未收到 Next 的错误消息

问题描述

我已经从父文件编写了一个宏来更改子文件。

父文件有 10 + 行我想循环浏览。子文件查看 row1 并根据第 1 行中的名称创建一个文件。

然后我使用 For 和 Next 函数让孩子查看下一行并根据新名称等保存文件。

我收到以下错误:

下一个没有 For

我的代码:

Sub CreateModels()

' set parameters
Dim vDestPath As String
Dim vDestFile As String
Dim vSrcePath As String
Dim vCurrFile As String
Dim vSrceFile As String
Dim vTot As Integer

vSrceFile = "Bridge 3-S Financial Model.xlsx"
vSrcePath = ActiveWorkbook.Path + "\Bridge 3-S Financial Model.xlsx"
vCurrFile = ActiveWorkbook.Name
vDestPath = ActiveWorkbook.Path & "\Output Models\"

'OpenFinancialModel
Workbooks.Open vSrcePath, UpdateLinks:=False
Sheets("Input Sheet Data").Select
Range("A4").Select

'creating models

For vTot = 6 To 1000

    ActiveCell.FormulaR1C1 = "='[Input Sheet.xlsm]Input Sheet'!R" & vTot & "C1"
    If Range("A4").Value <> 0 Then
    Do

    filepath = vDestPath & Range("a4") & ".Xlsx"
    ActiveWorkbook.SaveAs (filepath)
    vTot = vTot + 1

Next

Else
  ActiveWorkbook.Close SaveChanges:=False

End If

End Sub

标签: excelvba

解决方案


删除“Do”关键字,您可能希望在“Next”关键字之前结束 If 语句。像这样的东西:

For vtot = 6 To 1000

    ActiveCell.FormulaR1C1 = "='[Input Sheet.xlsm]Input Sheet'!R" & vtot & "C1"
 If Range("A4").Value <> 0 Then

    filepath = vDestPath & Range("a4") & ".Xlsx"
    ActiveWorkbook.SaveAs (filepath)
    vtot = vtot + 1

 Else
    ActiveWorkbook.Close SaveChanges:=False

 End If

Next

推荐阅读