try this,
VBA Code:
Option Explicit
Sub Create_Txt_File()
Dim mypath As String
Dim data As String
Dim r As Long
On Error Resume Next
mypath = "c:\test\"
Kill mypath & "*.csv" 'this will delete all that file type within that folder
On Error GoTo 0
For r = 2 To Cells(Rows.Count, "A").End(xlUp).Row
data = Cells(r, "B") & "," & Cells(r, "C") & "," & Cells(r, "D")
Open mypath & Cells(r, "A") & ".csv" For Append As #1
Print #1, data
Close #1
Next r
End Sub
Says path not found. I found the below online which separates into new tabs then creates new file but I was hoping this could be combined into one and the tabs be deleted after the CSV files are created
Sub NewSheets()
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Application.ScreenUpdating = False
vcol = Application.InputBox(prompt:="Which column would you like to filter by?", title:="Filter column", Default:="1", Type:=1)
Set ws = ActiveSheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = "A1"
titlerow = ws.Range(title).Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
For i = 2 To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
'Sheets(myarr(i) & "").Columns.AutoFit
Next
ws.AutoFilterMode = False
ws.Activate
Application.ScreenUpdating = True
End Sub
Then I found which saves as new files
Sub NewFiles()
Dim shtS As Worksheet
Dim strPath As String
strPath = ThisWorkbook.Path & "\"
For Each shtS In ThisWorkbook.Worksheets
shtS.Move
ActiveWorkbook.SaveAs strPath & ActiveSheet.Name & Format(Date, "_yymmdd") & ".csv"
ActiveWorkbook.Close False
Next shtS
End Sub