Recuerda que en la informática un error suele tener más de una resoluciones, por lo tanto aquí te mostramos lo más óptimo y mejor.
Solución:
Solo faltaba la segunda mitad de la declaración de la columna que le indicaba que eliminara la columna completa, ya que la mayoría de los rangos normales comienzan con una letra de columna, estaba buscando un número y no obtuvo uno. El “:” obtiene toda la columna o fila.
Creo que lo que buscabas en tu Range era esto:
Range("C:C,F:F,I:I,L:L,O:O,R:R").Delete
Simplemente cambie las letras de las columnas para que coincidan con sus necesidades.
Dice que desea eliminar cualquier columna con el título “Porcentaje de margen de error”, así que intentemos hacer esto dinámico en lugar de nombrar las columnas directamente.
Sub deleteCol()
On Error Resume Next
Dim wbCurrent As Workbook
Dim wsCurrent As Worksheet
Dim nLastCol, i As Integer
Set wbCurrent = ActiveWorkbook
Set wsCurrent = wbCurrent.ActiveSheet
'This next variable will get the column number of the very last column that has data in it, so we can use it in a loop later
nLastCol = wsCurrent.Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'This loop will go through each column header and delete the column if the header contains "Percent Margin of Error"
For i = nLastCol To 1 Step -1
If InStr(1, wsCurrent.Cells(1, i).Value, "Percent Margin of Error", vbTextCompare) > 0 Then
wsCurrent.Columns(i).Delete Shift:=xlShiftToLeft
End If
Next i
End Sub
Con esto, no tendrá que preocuparse por dónde se pegan/importan sus datos, siempre que los encabezados de las columnas estén en la primera fila.
EDITAR: Y si sus encabezados no son en la primera fila, sería un cambio realmente sencillo. En esta parte del código: If InStr(1, wsCurrent.Cells(1, i).Value, "Percent Margin of Error", vbTextCompare)
cambiar el “1” en Cells(1, i)
a cualquier fila en la que se encuentren sus encabezados.
EDIT 2: Cambió el For
sección del código para tener en cuenta las columnas completamente vacías.
Si sostienes alguna indecisión o capacidad de enriquecer nuestro sección te mencionamos escribir un exégesis y con deseo lo observaremos.