Я пишу код для динамических, отфильтрованных данных и хочу ссылаться на столбцы по заголовку вместо использования «G», «H» и т. Д. Мой код должен смотреть на ячейку в столбце F (cpass), а затем посмотрите на 5 соседних клеток. Если эти соседние ячейки не заполнены, то вся строка должна быть удалена, а затем она переходит к следующей ячейке в столбце F. Моя проблема заключается в том, что столбцы являются динамическими (извлекаются из отчета) и могут быть неупорядоченными в любой заданной области. день. Я не могу понять, как заставить ссылки на столбцы работать в операторе For. Ниже приведен код, который я пытался написать. Любые предложения будут оценены!
Sub ClassPassDeleteNEWTEST()
Dim cpass As Integer, fmonth As Integer, init As Integer, lmonth As Integer, piftot As Integer, pifnotax As Integer, LR As Long, r As Long
cpass = Application.WorksheetFunction.Match("Class Pass", Range("A1:AZ1"), 0)
fmonth = Application.WorksheetFunction.Match("First Month Only-", Range("A1:AZ1"), 0)
init = Application.WorksheetFunction.Match("InitiationFee", Range("A1:AZ1"), 0)
lmonth = Application.WorksheetFunction.Match("Last Month Only-", Range("A1:AZ1"), 0)
piftot = Application.WorksheetFunction.Match("PIF Total", Range("A1:AZ1"), 0)
pifnotax = Application.WorksheetFunction.Match("PIF Total No Tax", Range("A1:AZ1"), 0)
LR = Cells(Rows.Count, cpass).End(xlUp).Row
For r = LR To 1 Step -1
If Range(fmonth & r).Value = "" And Range(init & r).Value = "" And _
Range(lmonth & r).Value = "" And Range(piftot & r).Value = "" And _
Range(pifnotax & r).Value = "" Then Rows(r).Delete
Next r
MsgBox ("All Class Passes with no payment have been deleted, and any with a payment have been cleared.")
ActiveSheet.Range("A:L").AutoFilter Field:=6
End Sub