To post as a guest, your comment is unpublished.· 10 days agoSo, after reviewing the code a little closer, I saw where the initial file type had to be .xls. So replacing with .csv has solved the issue.
Conas baisc ilchomhaid Excel a thiontú go comhaid CSV in Excel?
In Excel, is féidir linn an leabhar oibre a thiontú go comhad CSV leis an bhfeidhm Save as, ach an bhféadfá a fhios a bheith agat conas baisc ilchomhaid Excel a thiontú go comhaid CSV ar leithligh? San Airteagal seo, tugaim isteach cód VBA chun gach comhad Excel i bhfillteán a thiontú go comhaid CSV in Excel.
In Excel, níl aon fheidhm ionsuite ann chun an post seo a réiteach go tapa seachas VBA.
1. Cumasaigh Excel, agus brúigh Alt + F11 eochracha oscailte Microsoft Visual Basic d’Fheidhmchláir fhuinneog.
2. cliceáil Ionsáigh > Modúil chun Modúl nua a chruthú.
3. Cóipeáil thíos an cód agus greamaigh iad chuig fuinneog nua an Mhodúil.
VBA: Baisc comhaid Excel a thiontú go CSV
Sub WorkbooksSaveAsCsvToFolder() 'UpdatebyExtendoffice20181031 Dim xObjWB As Workbook Dim xObjWS As Worksheet Dim xStrEFPath As String Dim xStrEFFile As String Dim xObjFD As FileDialog Dim xObjSFD As FileDialog Dim xStrSPath As String Dim xStrCSVFName As String Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual On Error Resume Next Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker) xObjFD.AllowMultiSelect = False xObjFD.Title = "Kutools for Excel - Select a folder which contains Excel files" If xObjFD.Show <> -1 Then Exit Sub xStrEFPath = xObjFD.SelectedItems(1) & "\" Set xObjSFD = Application.FileDialog(msoFileDialogFolderPicker) xObjSFD.AllowMultiSelect = False xObjSFD.Title = "Kutools for Excel - Select a folder to locate CSV files" If xObjSFD.Show <> -1 Then Exit Sub xStrSPath = xObjSFD.SelectedItems(1) & "\" xStrEFFile = Dir(xStrEFPath & "*.xls*") Do While xStrEFFile <> "" Set xObjWB = Workbooks.Open(Filename:=xStrEFPath & xStrEFFile) xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv" xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSV xObjWB.Close savechanges:=False xStrEFFile = Dir Loop Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.ScreenUpdating = True End Sub
4. Brúigh F5 eochair, roghnaigh san fhillteán tá na comhaid Excel a theastaíonn uait a thiontú go comhaid CSV sa chéad dialóg popping.
5. cliceáil OK, ansin sa dara dialóg popping, roghnaigh an fillteán chun na comhaid CSV a chur.
6. cliceáil OK, anois tá na comhaid Excel san fhillteán tiontaithe go comhaid CSV agus sábháladh iad i bhfillteán eile.
Mar is eol dúinn, ní féidir linn an leabhar oibre iomlán a thiontú go comhad CSV amháin in Excel lena fheidhm Save As. Ach i roinnt uaireanta, ba mhaith leat an bhileog aonair a thiontú go comhad CSV, sa chás seo, an Leabhar Oibre Scoilt fóntais de Kutools le haghaidh Excel Is féidir cabhrú leat.
|Kutools le haghaidh Excel, le níos mó ná 300 feidhmeanna úsáideacha, déanann sé do phoist níos éasca.|
Tar éis a shuiteáil Kutools for Excel, déan mar atá thíos le do thoil:Download Kutools Íoslódáil saor in aisce do Excel Anois!)
2. Sa Leabhar Oibre Scoilt dialóg, seiceáil ainm na bileoige a theastaíonn uait a roinnt (déantar gach bileog a sheiceáil de réir réamhshocraithe), seiceáil Ach amháin mar cineál, roghnaigh CSV (Macintosh) (* .CSV) ón liosta anuas.
You are guest
or post as a guest, but your post won't be published automatically.
To post as a guest, your comment is unpublished.· 11 days agoHello, is there a quick change to the code that would allow me to change from a CSV UTF-8 (Comma delimited) to just CSV (Comma delimited)? I tried the first method and was hopeful but it seems like it won't change them since they are already in some form of CSV. Maybe there is an easier process but I can't find anything. I have to convert maybe 150 files that were saved in this format and I don't want to open every file and Save As if I can avoid it. Any help is appreciated!
To post as a guest, your comment is unpublished.· 1 months agoThis is amazing. Thank-you!
To post as a guest, your comment is unpublished.· 2 months agotop thanks :)
To post as a guest, your comment is unpublished.· 1 years agoI think it is worth adding better error handling for files with special characters, currently they are simply ignored.
To post as a guest, your comment is unpublished.· 1 years agoThank you for sharing. I'm trying to save out multiple xls files which contain a unique value, producing a prompt asking yes or no before saving. The prompt reads..
"Some features in your workbook might be lost if you save it as a CSV (Comma delimited). Do you want to keep using that format?"
Would someone know where to add the code to answer yes to this prompt?
To post as a guest, your comment is unpublished.· 2 years agoAnother small remark:
If the cells in the original Excel files are all formatted as "General", some accuracy is lost when the file is saved as a CSV
For example, if a cell value in Excel is 0.123456789123456, then the value in the CSV will be 0.123456789 (missing the remaining decimals), as long as the cell was formatted as 'General'. This can be solved by formatting all cells in the Excel file to anything else than 'General' (for example, 'Text'). In that case, the CSV *will* still have the full detail/accuracy. I.e. the values in the Excel files will be fully intact after saving as a CSV.
How could this macro be changes, so it sets the formatting of all cells in the Excel file to 'Text', before saving as a CSV?
I imagine that it must somehow make use of the following, but I can't figure out how to correctly include in within the macro:
Selection.NumberFormat = "@"
To post as a guest, your comment is unpublished.· 2 years agoWorks great, thanks for the code!
My only remark would be that this code cuts of file names when there is a "." in the filename itself (e.g. file.123.csv turns into file.csv).
To post as a guest, your comment is unpublished.· 1 years agoHave you found a way around this issue?
To post as a guest, your comment is unpublished.· 1 years agoCarol,
On line 33 I've replaced this code:
xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv"
With this code:
xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".xlsx") - 1) & ".csv"
Note that if you're using some other excel extension (.xls, .xlsm, etc.) you should change it as such :)
To post as a guest, your comment is unpublished.· 1 years agoThank you so much! This has saved me so much time!!
To post as a guest, your comment is unpublished.· 2 years agoTy it really works dear !!