View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.misc
GS[_2_] GS[_2_] is offline
external usenet poster
 
Posts: 3,514
Default Clearing ".csv" file using VBA

Mike brought next idea :
On Dec 12, 11:05*am, Don Guillett wrote:
If you mean to clearcontents of the 1st page of the file then recorded/
edited
Sub Macro3()
* * Workbooks.Open Filename:="C:\yourfoledername\Book2.csv"
* * Cells.ClearContents
* * Activeworkbook.Close SaveChanges:=False
End Sub
Or do you want to KILL it.

On Dec 12, 9:24*am, Mike wrote:



Hi everyone,
Say I have this VBA piece:


Set BRngSolution =
Workbooks(filename).Worksheets("TimeMacTable").Ran ge("B6")
BRngSolution.Clear


but instead of a range in Excel sheet, I have thing in "abc.csv" that
I want to Clear. I tried this but didn't work:
Clear "C:\AM\Model\abc.csv"


how it should be written in VBA?


Thanks,
Mike- Hide quoted text -


- Show quoted text -


But if I have many ".csv" files, do I need to write this for every
file?


One way to clear the contents of a folder full of CSV files is to use
standard VB I/O and overwrite them by looping through the folder and
rewriting them with an empty string. Here's a reusable procedure to do
this...

Sub WriteTextFileContents(Text As String, Filename As String, Optional
AppendMode As Boolean = False)
' A reuseable procedure to write, overwrite, or append large amounts of
data
' to a text file in one single step.
Dim iNum As Integer
On Error GoTo ErrHandler
iNum = FreeFile()
If AppendMode Then
Open Filename For Append As #iNum: Print #iNum, vbCrLf & Text;
Else
Open Filename For Output As #iNum: Print #iNum, Text;
End If

ErrHandler:
Close #iNum: If Err Then Err.Raise Err.Number, , Err.Description
End Sub 'WriteTextFileContents()

...and here's how to use it:

Sub OverWriteCSVs()
Const sText As String = ""
Dim f As Variant, sPath As String

With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub 'User cancels
sPath = .SelectedItems(1)
End With
If Right(sPath, 1) < "\" Then sPath = sPath & "\"

f = Dir(sPath, 7)
Do While f < ""
If UCase(Right(f, 3)) = "CSV" Then _
WriteTextFileContents sText, sPath & f
f = Dir 'Get next file
Loop
End Sub

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc