Я работал над макросом, чтобы очистить форму, сгенерированную и скопированную в Excel. Я все выясняю до последнего этапа, когда мне нужно удалить строки, содержащие экстраординарные формулы. Пример:VBA Excel - Есть ли способ удалить строки на основе критериев в двух столбцах?
400000 | Smith, John| 2.4 | 5.66| =C1+D1
400001 | Q, Suzy | 4.6 | 5.47| =C2+D2
400002 | Schmoe, Joe| 3.8 | 0.14| =C3+D3
Blank | | | | #VALUE
Blank | | | | #VALUE
Есть ли формула для сравнения столбца «A» на колонке «E» и иметь его удалить все строки без значения в «A», но значение в «E»?
Я пробовал формулу базовой петли, идущую исключительно пустым столбцом «А», который работал навсегда, удаляя строки под информацией, которую я хочу сохранить, и нашел формулу, касающуюся фильтров на этом веб-сайте (от brettdj), но я не знал, как отредактировать его, чтобы правильно захватить то, что мне нужно.
Это то, что я от brettdj:
Sub QuickKill()
Dim rng1 As Range, rng2 As Range, rng3 As Range
Set rng1 = Cells.Find("*", , xlValues, , xlByColumns, xlPrevious)
Set rng2 = Cells.Find("*", , xlValues, , xlByRows, xlPrevious)
Set rng3 = Range(Cells(rng2.Row, rng1.Column), Cells(1, rng1.Column))
Application.ScreenUpdating = False
Rows(1).Insert
With rng3.Offset(-1, 1).Resize(rng3.Rows.Count + 1, 1)
.FormulaR1C1 = "=OR(RC1="",RC1<>"")"
.AutoFilter Field:=2, Criteria1:="TRUE"
.EntireRow.Delete
On Error Resume Next
'in case all rows have been deleted
.EntireColumn.Delete
On Error GoTo 0
End With
Application.ScreenUpdating = True
Некоторые другая информация:
Первые 5 строк листа, я хочу, чтобы игнорировать, они имеют заголовки столбцов и имя отчета и т.д.
Число строк, заполненных 40 #### 's изменений, поэтому я не могу просто указать строку 4 удаления макросов.
У меня нет обширных знаний о макросах (очевидно), поэтому подробные объяснения того, как работают определенные части, будут оценены. Заранее благодарим за любую помощь.
Хорошо, эта формула ** FormulaR1C1 = "= OR (RC1 =" ", RC1 <>" ")" ** возвращает TRUE из A1 = "" или A1 <> "" –
Я добавил ответ, ниже которого использует трюк SpecialCells, чтобы найти все строки, которые вы хотите удалить ... НО, это зависит от того, как вы получите формулу для проверки, следует ли удалить строку! –