Непосредственной причиной вашей ошибки было то, что Nathan_Sav указывает, что вы пытаетесь l oop пройти через диапазон, используя число.
Попробуйте это. Когда вы удаляете столбцы, вам нужно выполнять итерацию в обратном направлении, чтобы избежать пропуска ячеек. Установите диапазон (который вы можете сделать в одной строке), а затем используйте переменную счетчика l oop через каждую ячейку.
Вам не нужно Select Case
, вы можете придерживаться If
, но на мой взгляд, немного яснее.
Sub Make_Prod()
Sheets("4. Partic Charges - Final").Select
Dim i As Long
Dim StartCell As Range
Dim EndCell As Range
Dim MyValue As Range
Set StartCell = Range("B5")
Set EndCell = StartCell.End(xlToRight)
'Delete IID, LastName, FirstName, SSN, DOB, DOT, VestBal, TotalSourceDH, HasCovg, and any blank headers with values in column
Dim r As Range, c As Long
Set r = Range(StartCell, EndCell)
For c = r.Count To 1 Step -1
Select Case r.Cells(c).Value
Case "IID", "LastName", "FirstName", "SSN", "DOB", "DOT", "VestBal", "HasCovg", ""
r.Cells(c).EntireColumn.Delete
End Select
Next c
End Sub