Macro do Excel 2010 para forçar “F2” + “Enter” no intervalo de células

Espero que alguém possa ajudar!

Eu tenho uma planilha do Excel 2010 que possui macros configuradas para copiar dados de outras planilhas em um formato específico em outra planilha para uso com outros processos. Os dados dos quais preciso copiar estão ok, mas tenho um problema com a formatação de intervalos de células que contêm valores de data ou hora. Os dados se originam de uma extração de banco de dados e tudo está no formato de texto. Na minha planilha, quando copio a data em (via procedimentos de código VBA), aplico o formato exigido, que é"yyyy-mm-dd" para datas e"hh:mm.ss.ss" para os tempos.

Como nunca trabalhamos com uma quantidade fixa de linhas, defini o código vba para aplicar a formatação ao intervalo de células, por exemplo:

AssDateLastRow = shAss.Range("C" & Rows.Count).End(xlUp).Row

shAss.Range("C4:C" & AssDateLastRow).NumberFormat = "yyyy-mm-dd"

E isso funciona ok, até agora! Por alguma razão, embora nem todas as células do intervalo tenham o formato correto aplicado, elas aparecerão como15/04/2014 não2014-04-15. Se eu for selecionar manualmente a célula e pressionar oF2 entãoENTRAR teclas o formato aparece conforme eu preciso. Isso acontece aleatoriamente no intervalo e pode haver milhares de linhas; portanto, não é prático arrastar embora a planilha seja pressionada manualmenteF2+ENTRAR em cada um.

Procurei ajuda na internet e encontrei o que acredito que deveria fazer automaticamente oF2+ENTRAR pouco com codificação vba, mas não está funcionando e não consigo entender o porquê (sou iniciante no VBA!)

O código que uma pasta abaixo é o que eu tenho até agora, é extraído de um conjunto maior de linhas de código, então odim etc estão mais adiante na cópia real, mas isso deve mostrar o modo como lidei com isso até agora.

Dim shAss As Worksheet
Dim AssDateLastRow As Long
Dim c As Range

'enter method to format 'Date Craftperson Assigned' and 'Time Craftperson Assigned' in   Assignments sheet
'column "C" and "D", to formats required by Archibus: date "yyyy-mm-dd", time  "hh:mm.ss.ss"
AssDateLastRow = shAss.Range("C" & Rows.Count).End(xlUp).Row
shAss.Range("C4:C" & AssDateLastRow).NumberFormat = "yyyy-mm-dd"
'ensure format is applied by forcing F2 edit of cell
For Each c In shAss.Range("C4:C" & AssDateLastRow).Cells
    c.Select
    SendKeys "{F2}", True
    SendKeys "{ENTER}", True
'Selection.NumberFormat = "yyyy-mm-dd"
Next

Quando executo o código, os dados são copiados para minhas planilhas, mas as datas e horas ainda estão em um formato misto. A tentativa de forçar oF2+ENTRAR via VBA não parecia ter feito nada. Novamente, se fizer isso manualmente, funciona ok.

Abaixo está um exemplo de dados copiados dos resultados na planilha

Work Request Code       Date Assigned       Time  Assigned
92926                   19/05/2014          14:30.00.00
92927                   19/05/2014          15:00.00.00
92928                   2014-05-19          15:15.00.00
92934                   2014-05-19          14:00.00.00
92527                   12/05/2014          07:30
92528                   12/05/2014          08:00
92804                   2014-05-12          16:15
92805                   2014-05-12          16:20.00.00

Qualquer ajuda seria ótimo obrigado Dan

questionAnswers(11)

yourAnswerToTheQuestion