2016-04-27 3 views
0

Я создал AddIn и должен ссылаться на последнюю ячейку в столбце A. Я делаю это все время в обычных макросах, но имею время с ним в AddIn.Последняя строка таблицы AddIn

Я попытался

lRow2 = ThisWorkbook.Sheets("Client").Range("A1", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).Count 

и

lRow2 = ThisWorkbook.Sheets(1).Range("A1", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).Count 

даже

Dim ws2 As Worksheet 
Dim lRow2 As Long 

Set ws2 = ThisWorkbook.Sheets("Client") 

With ws2 
    lRow2 = .Range("A" & .Rows.Count).End(xlUp).Row 
End With 

который только возвращает значение 1, которое не является правильным.

Я прочитал, что мне нужно использовать ThisWorkbook для ссылки на рабочий лист Addin, но я либо получаю индекс за пределами диапазона, либо объект не поддерживает эти методы по-разному, я пытался это записать.

+0

FYI, вы используете 'ThisWorkbook' для обозначения книги, содержащей код, который запущен. Если этот код отсутствует в надстройке, вы не получите ожидаемых результатов. – Rory

ответ

0

Я был близок. Это возвращает правильный номер последней строки для листа добавления.

With Workbooks("Book1.xlam").Sheets("Sheet1") 

lRow = Range("A1", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).Count 

End With 
+1

Это не даст вам последнюю строку «Рабочие книги» («Book1.xlam»). Листы («Лист1») ', если это не таблица действий. Вам нужно добавить '.' перед диапазоном и другими объектами –

+0

Я так и думал, но он работал в то время. Возвращаясь к этому сегодня, я понимаю, что работал только потому, что у меня открылась настоящая рабочая книга. Теперь попытаемся выяснить, как ссылаться на значения на листе добавления, не открывая при этом рабочую книгу. – mrbungle

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