compile error: End If without block If (with more issues)
compile error: End If without block If (with more issues)
以下代码有问题。当我 运行 它时它说编译错误,但我认为我遇到了比这更大的问题。我想要完成的事情:
- 打开最近的"on hand report"
- 返回 "Master KB-PFEP" 工作表
- 如果工作表有过滤器,请清除过滤器
- 执行 VLOOKUP 更新现有报告中的现有列
非常感谢您的帮助
Dim curDate As String, Fname As String
curDate = Format(Date, "yyyy-mm-dd")
Dim wba As Workbook
Fname = "Y:\Consumables\Company\ABC\ABC - Planning & Materials\On Hand Reports\ABC Site\" & curDate & "_INV_R12_ABC_Onhandreport.xlsx"
Set wba = Workbooks.Open(Filename:=Fname, UpdateLinks:=False, Notify:=False)
Dim wb As Workbook
For Each wb In Application.Workbooks
If wb.Name Like "*Master KB-PFEP" Then wb.Activate
wb.Worksheets("Master").AutoFilter.Sort.SortFields.Clear
If (Worksheets("Master Data").AutoFilterMode And Worksheets("Master Data").FilterMode) Or Worksheets("Master Data").FilterMode Then
Worksheets("Master Data").ShowAllData
End If
Range("AL8:A" & Cells(Rows.Count, "A").End(xlUp).Row).Formula = "=SUMIF('Inv Report'!C[-36],RC[-36],'Inv Report'!C[-21])"
End If
End Sub
当条件代码在同一行时,您不需要 End If
:
If wb.Name Like "*Master KB-PFEP" Then wb.Activate
这意味着你在底部多了一个。修复该问题后,您需要在 End Sub
.
之前的某处添加缺失的 Next
我猜你应该有以下内容(没有检查你的 R1C1 值):
wb.Activate
上的新行
- 使用
FormulaR1C1
代替Formula
- 在
End Sub
之前添加了 Next
Sub SO_30042563()
Dim curDate As String, Fname As String
curDate = Format(Date, "yyyy-mm-dd")
Dim wba As Workbook, wb As Workbook
Fname = "Y:\Consumables\Company\ABC\ABC - Planning & Materials\On Hand Reports\ABC Site\" & curDate & "_INV_R12_ABC_Onhandreport.xlsx"
Set wba = Workbooks.Open(Filename:=Fname, UpdateLinks:=False, Notify:=False)
For Each wb In Application.Workbooks
If wb.Name Like "*Master KB-PFEP" Then
wb.Activate
wb.Worksheets("Master").AutoFilter.Sort.SortFields.Clear
If (Worksheets("Master Data").AutoFilterMode And Worksheets("Master Data").FilterMode) Or Worksheets("Master Data").FilterMode Then
Worksheets("Master Data").ShowAllData
End If
Range("AL8:A" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaR1C1 = "=SUMIF('Inv Report'!C[-36],RC[-36],'Inv Report'!C[-21])"
End If
Next
End Sub
以下代码有问题。当我 运行 它时它说编译错误,但我认为我遇到了比这更大的问题。我想要完成的事情:
- 打开最近的"on hand report"
- 返回 "Master KB-PFEP" 工作表
- 如果工作表有过滤器,请清除过滤器
- 执行 VLOOKUP 更新现有报告中的现有列
非常感谢您的帮助
Dim curDate As String, Fname As String
curDate = Format(Date, "yyyy-mm-dd")
Dim wba As Workbook
Fname = "Y:\Consumables\Company\ABC\ABC - Planning & Materials\On Hand Reports\ABC Site\" & curDate & "_INV_R12_ABC_Onhandreport.xlsx"
Set wba = Workbooks.Open(Filename:=Fname, UpdateLinks:=False, Notify:=False)
Dim wb As Workbook
For Each wb In Application.Workbooks
If wb.Name Like "*Master KB-PFEP" Then wb.Activate
wb.Worksheets("Master").AutoFilter.Sort.SortFields.Clear
If (Worksheets("Master Data").AutoFilterMode And Worksheets("Master Data").FilterMode) Or Worksheets("Master Data").FilterMode Then
Worksheets("Master Data").ShowAllData
End If
Range("AL8:A" & Cells(Rows.Count, "A").End(xlUp).Row).Formula = "=SUMIF('Inv Report'!C[-36],RC[-36],'Inv Report'!C[-21])"
End If
End Sub
当条件代码在同一行时,您不需要 End If
:
If wb.Name Like "*Master KB-PFEP" Then wb.Activate
这意味着你在底部多了一个。修复该问题后,您需要在 End Sub
.
Next
我猜你应该有以下内容(没有检查你的 R1C1 值):
wb.Activate
上的新行
- 使用
FormulaR1C1
代替Formula
- 在
End Sub
之前添加了
Next
Sub SO_30042563()
Dim curDate As String, Fname As String
curDate = Format(Date, "yyyy-mm-dd")
Dim wba As Workbook, wb As Workbook
Fname = "Y:\Consumables\Company\ABC\ABC - Planning & Materials\On Hand Reports\ABC Site\" & curDate & "_INV_R12_ABC_Onhandreport.xlsx"
Set wba = Workbooks.Open(Filename:=Fname, UpdateLinks:=False, Notify:=False)
For Each wb In Application.Workbooks
If wb.Name Like "*Master KB-PFEP" Then
wb.Activate
wb.Worksheets("Master").AutoFilter.Sort.SortFields.Clear
If (Worksheets("Master Data").AutoFilterMode And Worksheets("Master Data").FilterMode) Or Worksheets("Master Data").FilterMode Then
Worksheets("Master Data").ShowAllData
End If
Range("AL8:A" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaR1C1 = "=SUMIF('Inv Report'!C[-36],RC[-36],'Inv Report'!C[-21])"
End If
Next
End Sub