O Excel parece utilizar o último delimitador utilizado na sessão. Dave Peterson descreve uma possível solução aqui Você essencialmente cria uma macro que define o delimitador padrão e o coloca na pasta xlstart. Se está a fazer isto para um ficheiro em máquinas de outras pessoas, isso provavelmente não vai funcionar, mas é assim que o abordaria, programadamente no seu próprio sistema, e pode adaptá-lo à sua situação. A execução do seguinte código deve definir previamente o delimitador para si. Isto irá funcionar numa sessão existente. Assim, se tiver um conteúdo que espera a configuração de delimitadores específicos, execute algo como isto antes da sua importação, definindo os parâmetros que desejar
With ThisWorkbook.Worksheets(1).Range("a1")
.TextToColumns Destination:=.Columns(1), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=True, Space:=False, Other:=False
End With
ThisWorkbook.Close SaveChanges:=False