Обновление данных в других листах Excel рабочей книги

Это прямая ссылка на ранее заданный и ответивший вопрос, который находится здесь: Автоматическое обновление данных в других листах Excel рабочей книги

Этот скрипт отлично работает, но по какой-то причине он не вытягивает все списки. Ниже приведен мой код, который я редактировал для работы с моим решением. Я не использую этот первый блок кода:
_

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Call UpdateFromMaster End Sub 

Это то, что я использую в стандартном модуле:

_

 Sub UpdateFromMaster() Call ResetDestinationSheets Dim LR As Long, i As Long LR = Range("A" & Rows.Count).End(xlUp).Row For i = 2 To LR If Range("Q" & i).Value = "Todd" Then Rows(i).Copy Destination:=Sheets("Todd").Range("A" & Rows.Count).End(xlUp).Offset(1) If Range("Q" & i).Value = "Bob" Then Rows(i).Copy Destination:=Sheets("Bob").Range("A" & Rows.Count).End(xlUp).Offset(1) If Range("Q" & i).Value = "Trevor" Then Rows(i).Copy Destination:=Sheets("Trevor").Range("A" & Rows.Count).End(xlUp).Offset(1) Next i End Sub 

_

 Sub ResetDestinationSheets() Call ResetThisSheet("Todd") Call ResetThisSheet("Bob") Call ResetThisSheet("Trevor") End Sub 

_

 Sub ResetThisSheet(ByRef SheetToClear As String) Sheets(SheetToClear).Range("A2:S" & Rows.Count).Clear End Sub 

_

Теперь, мой главный список после запуска макроса UpdateFromMaster, Macro, похоже, работает нормально. Пока я не проверю количество отведений на каждом листе (Тодд, Боб и Тревор). Должно быть 39 для Боба, 243 для Тодда и 62 для Тревора. Когда макрос запущен, он отправляет 105 только на рабочий лист Тодда, 39 на Боба (это правильно) и 51 на Тревор. У меня есть строка заголовков на всех листах, включая Master.

Как я troubleshot это, я очистил все форматирование на всех листах и ​​дважды проверил, что все написано прямо в столбце «Q».

Любые идеи о том, что я делаю неправильно?

Похоже, что ваш вход остановится в первой строке, пустой в столбце A. Эта строка здесь:

 LR = Range("A" & Rows.Count).End(xlUp).Row 

Сначала получает диапазон всех «потенциальных» строк в столбце A ( Range("A" & Rows.Count) ). В зависимости от вашей версии Excel и того, сохранили ли вы ее недавно, это «потенциальное» количество строк может включать в себя тысячи (или даже миллионы) строк, которые действительны, но фактически не используются.

Чтобы облегчить это, добавлен оригинальный кодер .End(xlUp).Row который сообщает ему, чтобы он вертикально переходил к последней ячейке в столбце (это то же самое, что вы получили бы, если бы нажали «control-Down» на ячейке A1). Ограничение этого подхода состоит в том, что «последняя использованная ячейка» определяется локально, а не глобально, что означает, что она останавливается в первой ячейке balnk по-своему.

Interesting Posts

Почему макрос означает, что листы (13) выполняются на листе (12)

Как начать работу с PyWin32

Полужирная строка в excel на основе значения столбца

Копирование числового текста с ведущими нулями в excel с помощью vba

Как перенести столбец в excel относительно другого?

Как распечатать полное имя списка файлов, которое присутствует в общем диске (Location)

Как добавить ExcelPackage в мой проект C # для чтения загруженного файла xls?

Почему мой код VBA создает дополнительный лист при его запуске?

О том, как искать и заменять строку в столбце, используя библиотеку

Как я могу загрузить memStream с файлом Excel .xlsx, а затем открыть его из memStream?

Excel 2010 VBA – Сплит-строка по запятой, Пропустить пустые результаты

Применить защищенный макет листа ко всем листам в рабочей книге

Сложность с send_data в Ruby on Rails в сочетании с плагином электронных таблиц

Сохранить PDF из Excel в том же формате, используя Excel Interop

Код VBA: ошибка времени выполнения '-2147012890 (80072ee6)' Ошибка автоматизации

Давайте будем гением компьютера.