I want to export specific number of columns from excel into .csv file. I have around 10 columns like
For newer versions of Excel (365 & 2019) you can use TEXTJOIN and avoid having to type out each cell and the delimiter as you would with CONCATENATE:
TRUE ignores any empty cells, and you can specify a range like A1:H1 above, or individual cells e.g.:
Then select the column, copy and paste into notepad and save as csv.
Answered by John Leonard on December 29, 2020
Here's a low-tech solution:
Answered by Excellll on December 29, 2020
I wrote my own VBA solution to this as an add-in; it's available here on GitHub.
Example view (click image for larger version):
Steps for use are:
The form is modeless, so you can leave it open while you select different ranges or navigate sheet-to-sheet or workbook-to-workbook. To note, the "at symbol" (
@) serves as a representation of Excel's 'General' number format for output operations such as this.
C:test.csv from the above example:
13,14,15 14,15,16 15,16,17
Answered by hBy2Py on December 29, 2020
Sub ExportSelectionAsCSV() ' MS Excel 2007 ' Visual Basic for Applications ' ' Copies the selected rows & columns ' to a new Excel Workbook. Saves the new ' Workbook as Comma Separated Value (text) file. ' ' The active workbook (the 'invoking' workbook - the ' one that is active when this subroutine is called) ' is unaffected. ' ' Before returning from the subroutine, the invoking workbook ' is "set back to" (restored as) the active workbook. ' ' Note: target filename is hard coded (code is simpler that way) ' Suspends screen updating (until ready to return) ' Warning: ScreenUpdating MUST be re-enabled before ' returning from this subroutine. ' ' Note: Step through this subroutine line-by-line to prove ' to yourself that it is performing as promised. ' (Please step through the code at least once - use F8) Application.ScreenUpdating = False ' Gets the name of *this (the invoking) workbook ' so *this workbook can again be set active ' at the end of this subroutine. Dim CurrentFileName As String CurrentFileName = ActiveWorkbook.Name Debug.Print "Active File: " + CurrentFileName ' Copies the selected cells (to the clipboard). ' Precondition: Cells must be selected before ' calling this subroutine. Selection.Copy ' Instantiates a (new) object instance of type Excel workbook. ' Side-effect: The new workbook instance is now ' the 'active' workbook. Workbooks.Add Template:="Workbook" ' Selects the first cell of the ' first worksheet of the new workbook. Range("A1").Select ' Pastes the clipboard contents to the new worksheet ' (of the new workbook) ActiveSheet.Paste ' Writes the new (active) Excel workbook to file. ' The format is Comma Separated Value ActiveWorkbook.SaveAs Filename:= _ "C:tempdata.csv" _ , FileFormat:=xlCSV, _ CreateBackup:=False ' Gets the filename of the new (active) workbook ' so the name can be logged. Dim NewFileName As String NewFileName = ActiveWorkbook.Name Debug.Print "Active File: " + NewFileName ' Closes the new CSV file Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True ' Clears the clipboard contents. Application.CutCopyMode = False ' Restores the invoking workbook as the active ' Excel workbook. Workbooks(CurrentFileName).Activate Range("A1").Select ' Re-Enables Excel screen display. Application.ScreenUpdating = True End Sub
Answered by Lyle S. on December 29, 2020
Yet another solution:
Saves the table on the active sheet as a new CSV (by opening a new workbook and saving from there, using the table name as the file name).
Answered by bishop on December 29, 2020
If you open the file in Ron's Editor you can hide the columns you don't want, then export the resulting 'view' as an Excel file or any other format. Better yet you can save the view for future use. Very quick, very easy.
Answered by Jedy on December 29, 2020
Select the first column you want. Then, while holding down
<Ctrl>, select the remaining columns you want. Copy your selection and paste it into a new workbook. Save the new workbook as a .csv file.
If you are going to do this frequently, record a macro of your steps. Here is the macro recorded from my test. In my example, column A is Name and column E is Email. I've also modified the macro so the SaveAs filename includes the current date.
I was going to show an example macro, but for whatever reason, superuser errors out when I click Save Edits. I'll try again later.
Answered by mischab1 on December 29, 2020
Just do in simple way:-
Apply concatenation for 10 columns
Drag down list end of your last row
Answered by Siva Charan on December 29, 2020
0 Asked on February 2, 2021 by young-marx
1 Asked on February 1, 2021 by dolf-andringa
0 Asked on February 1, 2021 by midknyte
0 Asked on February 1, 2021 by mike-t
1 Asked on February 1, 2021 by user1262837
12 Asked on February 1, 2021 by sieppl
7 Asked on February 1, 2021 by rlh
2 Asked on January 31, 2021 by dmitriy-potapov
2 Asked on January 31, 2021 by gregh
1 Asked on January 31, 2021 by horst-walter
1 Asked on January 31, 2021 by quadrivics
1 Asked on January 31, 2021
2 Asked on January 31, 2021 by klaatu_nikto
9 Asked on January 30, 2021 by christopher-gwilliams
2 Asked on January 30, 2021 by sigstackfault
1 Asked on January 30, 2021 by owensteam
1 Asked on January 30, 2021 by jazerix
Get help from others!