Код предназначен для удаления заголовков столбцов (после импорта нескольких файлов) для данных. Но я получаю сообщение об ошибке: «1004» Что такое «Определенная приложением или объектная ошибка». Я ссылался на различные решения по SO, но безрезультатно.Удалить строку на основе значения ячейки
Перед тем, как запустить этот снимок кода, я удаляю пустые строки и включаю это, чтобы показать, что работает, и может даже держать ключ.
'Remove all rows with blanks first
Set wb = Workbooks(ThisWorkbook.Name)
'Remove blank rows based on if column 'B' is blank as a and B are filled when there is risk key showing
wb.Worksheets("BatchData").Activate
Columns("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
'Now to delete based on column headers!
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'Filter Column A and delete selection
'############# Error line below
ActiveSheet.Range("A1:" & A & ":" & LastRow).AutoFilter Field:=2, Criteria1:= _
"=Item", Operator:=xlOr, Criteria2:="="
Selection.EntireRow.Delete
EDIT:
Измененный код, некоторые твики, как в комментариях, а также у меня было поле "2" ссылка и пытается использовать 'A', который является 1.
Dim LastRow As Long
LastRow = wb.Worksheets("BatchData").Cells(Rows.Count, 1).End(xlUp).Row
'Filter Column A and delete selection
ActiveSheet.Range("A1:A" & LastRow).AutoFilter Field:=1, Criteria1:= _
"=Item", Operator:=xlOr, Criteria2:="="
ActiveSheet .Range ("$ A $ 1: $ A $" & LastRow) .offset (0, 0) .SpecialCells _ (xlCellTypeVisible) .EntireRow.Delete
Последняя строка редактирования на основе; VBA: How to delete filtered rows in Excel?, но смещение изменено с 1,0 до 0,0
Сначала вы можете использовать 'Set wb = ThisWorkbook'. Во-вторых, при использовании 'LastRow' лучше использовать определенную ссылку на лист, например' LastRow = wb.Worksheets («BatchData»). Ячейки (Rows.Count, 1) .End (xlUp) .Row'. Кроме того, измените «Range (« A1: »& A &»: «& LastRow)' на 'Range (« A1: A »и LastRow)' –
У меня есть подозрение ... Сделайте отпечаток '" A1: " & A & ":" & LastRow' и добавьте его в свой пост. – FDavidov
Кстати, вы удаляете диапазон внутри столбца/строки, а не весь столбец/строку. – FDavidov