删除另一个工作簿中的行

Cha*_*ase 5 excel vba

目标:在一个 Excel 工作簿 (Default.xls) 中编写 VBA 脚本以打开另一个具有变量名称 (NFL_*) 的 Excel 工作簿。然后 Default 中的 VBA 脚本将删除 NFL 中的几个多余的和合并单元格类型的行 (1:12)。然后它将计算 NFL 中填充记录的数量(即行数)并删除最后一行(因为它不是真正的记录,它只是一个汇总其中一列的单元格)。

问题:我无法让后一部分工作 - 关于删除最后一个“行”的部分。如果脚本是在 NFL 工作簿本身中编写的,我可以让它工作,但我不能让它与默认工作簿中编写的脚本一起工作。虽然 - 我可以在默认工作簿中获取 VBA 脚本以删除 NFL 工作簿中的 1:12 行。为什么它不适用于后半部分?

问题重申:默认工作簿有 1 个 VBA 脚本,可对另一个工作簿执行 2 个不同的操作。1 个动作 - 删除 1:12 行 - 有效。第二个操作 - 删除最后一个“行” - 不起作用。

预先感谢您的任何帮助!

Sub Chop_FR_NFL()

'Set parameters
Dim wb As Excel.Workbook
Dim xlApp As Excel.Application

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True

'Open latest NFL report and delete rows 1:12

Set wb = xlApp.Workbooks.Open("T:\xx\xx\xx\xx\xx\xx\xx\" & "NFL_*", True, False)

wb.Sheets(1).Rows("1:12").Delete

'Delete Total UPB Grand Total cell

Dim UPB As Long
UPB = Range("I" & Rows.Count).End(xlUp).Row
Range("I" & UPB).Select
Selection.Delete

wb.Save
wb.Close

End Sub
Run Code Online (Sandbox Code Playgroud)

Tim*_*ams 5

这应该有效:

'...
With wb.Sheets(1)
    .Rows("1:12").Delete
    .Cells(.Rows.Count, "I").End(xlUp).EntireRow.Delete
End With 
'...
Run Code Online (Sandbox Code Playgroud)