Eu modifiquei MyFunction para que funcionasse:
Function MyFunction(i)
'Code goes here
Dim wkb As Workbook
Dim wks As Worksheet
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(i)
Dim lColumn As Long
Dim iCntr As Long
lColumn = 5
'For Each ws In ThisWorkbook.Worksheets
'For iCntr = lColumn To 1 Step -1
wks.Activate
If IsNumeric(wks.Cells(1, lColumn)) Then
wks.Range(Cells(1, lColumn), Cells(1, lColumn)).EntireColumn.Delete
End If
'Next ws
MsgBox "I'm currently on sheet " & ThisWorkbook.Sheets(i).Name
Set wks = Nothing
Set wkb = Nothing
End Function
Eu adicionei as variáveis wkb
e wks
correspondentes à pasta de trabalho e planilha . Usando essas variáveis, é fácil se referir às células da planilha e excluir a coluna desejada.
Se você precisar executá-lo em mais de 700 planilhas, precisará remover o MessageBox . Além disso, desativar e ativar ScreenUpdating
fará com que funcione mais rápido.