2015-05-01 6 views
2

Цель: Написать сценарий VBA в одной книге Excel (по умолчанию. Xls), чтобы открыть другую книгу Excel с именем переменной (NFL_ *). Затем сценарий VBA по умолчанию удалит несколько строк избыточного и объединенного ячеек (1:12) в NFL. Затем он подсчитает количество заполненных записей в NFL (т. Е. Количество строк) и удалит последнюю строку (потому что это не настоящая запись, а просто ячейка, которая суммирует один из столбцов).Удалить строки в другой рабочей книге

Проблема: Я не могу заставить последнюю часть работать - часть об удалении последней «строки». Я могу заставить его работать, если скрипт написан в самой книге NFL, но я не могу заставить его работать со сценарием, написанным в книге по умолчанию. Хотя - я могу заставить скрипт VBA в книге по умолчанию удалить строки 1:12 в книге NFL. Почему он не будет работать для последней части?

Проблема с повторением: В книге по умолчанию имеется 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 
+1

ЗАКАНЧИВАТЬ 'диапазон («Я»и УПБ) .entirerow.delete' – Davesexcel

+0

Добрый вечер Дэйв, я пытался это изменить, но сценарий не удалить сумма снизу. Однако, спасибо! – Chase

ответ

3

Это должно работать:

'... 
With wb.Sheets(1) 
    .Rows("1:12").Delete 
    .Cells(.Rows.Count, "I").End(xlUp).EntireRow.Delete 
End With 
'... 
+0

Вот и все! Большое вам спасибо, Тим. – Chase

Смежные вопросы