O Excel possui um recurso de gravação de macro integrado que gera código VBA com base em suas ações. Sua melhor aposta na depuração desse problema é gravar uma macro de você 'manualmente' fazendo o que você está tentando fazer no VBA e subseqüentemente revisando o código que é gerado.
Sempre verifique se a macro gravada realmente faz o que você estava fazendo - não é 100% preciso.
Se a macro gerada estiver sendo executada, você poderá revisar o código para ela no editor de VBA da pasta de trabalho na qual cria a macro. Observe que ela não precisa ser uma das duas. pastas de trabalho de interesse em seu extrato de código, pode ser outra planilha que não tenha relação com elas.
Com base em como o código gerado automaticamente é gravado, você poderá ver o problema com seu próprio código. Se não, você pode sempre usar isso como está (mova-o para sua função em vez de para a macro).
Você pode encontrar qualquer número de guias sobre a gravação de macros. Aqui está um guia direto para o Excel 2013.