目标:在一个 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)
这应该有效:
'...
With wb.Sheets(1)
.Rows("1:12").Delete
.Cells(.Rows.Count, "I").End(xlUp).EntireRow.Delete
End With
'...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3488 次 |
| 最近记录: |