Сопоставьте диапазоны между рабочими листами и скрытыми строками и вставьте данные в последнюю строку другого рабочего листа - PullRequest
0 голосов
/ 31 января 2019

Я надеюсь, что смогу получить некоторую помощь в следующем.Заранее спасибо за любые предложения.

Описание: у меня 3 листа.Я пытаюсь скопировать значения в столбце A листа 1 (IRA) на лист 2 (XVD) , если количество значений в листе 1 соответствует общему количеству значений в листе 3 (POV)

Лист 3 (POV) имеет фильтр, который необходим.Цель состоит в том, чтобы сопоставить значения в IRA с отфильтрованными строками POV, и, если они совпадают, просто добавьте общее количество значений в столбце A IRA к последней строке XVD в столбце A.

Проблемы:Копирование вставки не работает правильно и не выполняется, так как оператор IF не работает в true.

Кроме того, последняя строка для XVD (проверка только видимых ячеек) возвращает значение только 3, если имеется более 1800 отфильтрованных строк.

Sub copycontactsiratopov()

'activate source sheet
ActiveWorkbook.Worksheets("IRA").Activate

'define last rows for all three sheets
LastrowIRA = ActiveSheet.Range("A1").CurrentRegion.Rows.count

'there are over 1800 values but it keeps showing only 3?!
LastRowXVD = ActiveWorkbook.Sheets("RevereseVlookup").Range("A1").SpecialCells(xlCellTypeVisible).Rows.count
LastRowPOV = ActiveWorkbook.Sheets("POV").Range("A1").CurrentRegion.Rows.count

'copy the data needed, values are generally less than 10000 rows
ActiveWorkbook.ActiveSheet.Range("A2:A10000").Copy

'if the number of lastrow in source sheet is equal to total VISIBLE last row within reference sheet then
If LastrowIRA = LastRowXVD Then

'copy the range from source to destination
Worksheets("POV").Range("A" & LastRowPOV + 1).Value = Worksheets("IRA").Range("A2:A10000").Value


'else display msg for error handling
Else: MsgBox "Row Count between IRA and XVD tab is off! *CHECK*"

End If

End Sub

1 Ответ

0 голосов
/ 31 января 2019

где ваша команда вставки, не вижу ее.

ActiveWorkbook.ActiveSheet.Range("A2:A10000").Copy
Workbooks("put your wb name here").sheets("POV").Range("A2").paste

что-то подобное должно работать

...