"Hoje estive tentando rodar minha macro mesmo que erros fossem encontrados no caminho."
Rafael, não faça isto. É uma prática de programação não recomendada. Trate os erros. Dessa forma, além de você não saber onde está o erro, é muito provável que obtenha resultados inesperados na execução da sua rotina.
Outra observação: declare variáveis.
Outra observação: O VBA é capaz de alterar dados de uma planilha sem precisar ativá-la nem selecioná-la. Qualifique os intervalos de sua planilha e evite o uso do método Activate.
Sobre sua dúvida, experimente fazer o seguinte:
Sub PasteTasks()
Application.ScreenUpdating = False 'doesn't allow screen to update (user can't see the program running)
Dim LastRow As Integer 'variables
Dim TaskIndex, FindToday As Long
LastRow = Cells(Rows.Count, "B").End(xlUp).Row - 1 'define loop last row
'On Error Resume Next '<-isto deve ser removido!
For i = 10 To LastRow 'loop to copy/paste data depending on the task
With Sheet9 'copy content depending on task
.Activate
.Cells(i, 2).Copy
task = .Cells(i, 1)
End With
With Plan13 'takes into consideration current date and paste content to the defined task
.Activate
'Zerar os valores antes de procurá-los:
TaskIndex = 0
FindToday = 0
On Error Resume Next '<- Aqui ignoro os erros
TaskIndex = Application.WorksheetFunction.Match(task, .Range("B1:CM1"), 0) + 1
FindToday = Application.WorksheetFunction.Match(CLng(Date), .Range("A2:A214"), 0) + 1
On Error GoTo 0 '<- Aqui volto a ser notificado dos erros
'Verifico se é possível popular a célula abaixo:
If TaskIndex > 0 And FindToday > 0 Then
Cells(FindToday, TaskIndex).PasteSpecial Paste:=xlPasteValues
End If
End With
Next
Application.CutCopyMode = False 'cancel paste history
Worksheets("Tasks").Activate 'back to task
End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br