Ho qualche problema durante l'apertura di un file .csv a livello di codice. Il file è una serie temporale di dati giornalieri, con diversi punti dati associati a ciascuna data.I formati/i valori della data VBA di Excel cambiano quando il file viene aperto in modo programmato
Quando si apre manualmente il file, le date si aprono correttamente, come il formato della data dd/mm/yyyy
. Tuttavia, quando apro il file a livello di programmazione, le date fino al 12 di ogni mese vengono aperte come mm/dd/yyyy
, sebbene il formato rimanga dd/mm/yyyy
(ad esempio, il 1 luglio 1983 (1/7/1983), verrà aperto come il 7 di Gennaio 1983 (7/1/1983) - questo non è solo un problema di formattazione, anche la data giuliana (giorni dal 1 gennaio 1901) associata a queste date cambia) e le date successive al 12 di ogni mese vengono aperte correttamente, anche se come testo piuttosto che come data.
I dati che arrivano come testo non sono un problema, tuttavia, le date che cambiano non appena il file viene aperto è problematico. Potrei provare a importare l'intero file .csv come testo delimitato da virgole piuttosto che aprire effettivamente il file, tuttavia sarebbe più facile e veloce se potessi impedire che le date cambino quando apro il file.
Qualcuno ha avuto un problema simile a questo in passato? Qualunque consiglio su questo sarebbe molto apprezzato.
Cheers, Ben.
Flder = InputBox("Copy and Paste Folder path here:")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourcePath = FSO.GetFolder(Flder)
For Each File In SourcePath.Files
Workbooks.Open (File)
FlNm = File.Name
StrtCol = Workbooks(FlNm).Worksheets(1).Range(Cells(4, 1), Cells(4, 30)).Find ("Mean").Column
Workbooks(FlNm).Worksheets(1).Range(Cells(1, 1), Cells(60000, 1)).Copy (Workbooks("Find Water Years V2.xls").Worksheets(1).Range("A3"))
Workbooks(FlNm).Worksheets(1).Range(Cells(1, StrtCol), Cells(60000, StrtCol + 1)).Copy (Workbooks("Find Water Years V2.xls").Worksheets(1).Range("B3"))
Workbooks(FlNm).Close
Next
Il problema sembra verificarsi nella riga Workbooks.Open (File). Scusa per non averlo buttato via per cominciare.
È possibile definire "open programmatically"? Intendi tramite l'automazione di Excel? O direttamente nel codice VBA? Non c'è modo di "aprire il file" potrebbe modificare qualsiasi contenuto; è qualcosa di diverso da quello, ma non hai pubblicato nulla di pertinente nella tua domanda. L'apertura di un file .csv non fa nulla per modificare il contenuto di per sé (ad esempio, in Blocco note); pubblica del codice o altre informazioni che mostrano come lo stai leggendo e cosa stai facendo con il testo che leggi. Altrimenti, sospetto che la tua domanda verrà chiusa come "non una vera domanda". :) –
Ci scusiamo per la mancanza di chiarezza su quello Ken, codice qui sotto. –
Sono d'accordo con Ken qui. C'è una causa sottostante. Che aspetto ha il file nel blocco note a quel punto, come stai aprendo il file? Viene inserito in un modello. Incollato? – datatoo