Таблица автофильтрации на одном листе для значений, превышающих переменную на другом листе - PullRequest
0 голосов
/ 06 июня 2019

Основы --- Файл1 содержит Таблицу1, а Файл2 содержит Таблицу2.Мой макрос, содержащийся в File2, копирует строки из Table1 и вставляет их в конец Table2.Каждый раз, когда я запускаю макрос, я записываю метку времени в File2.

Особенности --- Я хочу скопировать из Таблицы 1 только те строки, которые содержат дату (расположена в столбце 16) позже отметки времени, которую я записал в Файл2 при последнем запуске макроса.

File1 - это ComboFile;Table1 - это ComboWeekTable;File2 - это накопительный пакет;Table2 - это RollupWeekTable

Sub CopyToRollup()

Dim RollupWeekSheet As Worksheet
Set RollupWeekSheet = Workbooks("Tasks - Rollup").Sheets("Weekly")

Dim RollupWeekTable As ListObject
Set RollupWeekTable = RollupWeekSheet.ListObjects("Table1")

Dim RollupTimeStamp As String
RollupTimeStamp = RollupWeekSheet.Range("B3").Value



Dim ComboFile As Workbook
Set ComboFile = Workbooks.Open(ComboPath, ReadOnly:=True)
'Opens ComboFile as Read Only~~~~~~~~~~~

Dim ComboWeekSheet As Worksheet
Set ComboWeekSheet = ComboFile.Sheets("Weekly")

Dim ComboWeekTable As ListObject
Set ComboWeekTable = ComboWeekSheet.ListObjects("Table1")
'Define most variables~~~~~~~~~~~~~~



Dim LastRollupWeekRow As Long
Dim sh1Col As Integer
With RollupWeekSheet
sh1Col = .Range("Table1").Cells(1).Column
LastRollupWeekRow = .Cells(.Rows.Count, sh1Col).End(xlUp).Row
End With
'Move to the next empty row in Rollup Table 1.~~~~~~~~~~~~~~~~



With ComboWeekTable
.Range.AutoFilter Field:=16, Criteria1:=">" & RollupTimeStamp
.AutoFilter.Range.Copy
End With

With RollupWeekSheet
.Cells(LastRollupWeekRow + 1, sh1Col).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End With
'Filter ComboWeekTable column 16 for values greater than RollupTimeStamp, copy from ComboWeekTable only those rows added later than the timestamp, and paste them to the bottom of RollupWeekTable.~~~~~~~~~~~~~~~~



RollupWeekSheet.Range("B3").Value = DateTime.Now

ComboFile.Close savechanges:=False
'Record a new RollupTimeStamp and close ComboFile.~~~~~~~~~~~~~~~~

End Sub

Он постоянно говорит мне, что для моего автофильтра «Именованный аргумент не найден».Я не уверен, что я делаю неправильно.Любая помощь будет принята с благодарностью.

...