Clearing ".csv" file using VBA

M

Mike

Hi everyone,
Say I have this VBA piece:

Set BRngSolution =
Workbooks(filename).Worksheets("TimeMacTable").Range("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
 
D

Don Guillett

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.
 
M

Mike

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.








- Show quoted text -

Just clearing not removing. Thanks
 
M

Mike

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.








- Show quoted text -

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

GS

Mike brought next idea :
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
 
H

Harlan Grove

Set BRngSolution =
Workbooks(filename).Worksheets("TimeMacTable").Range("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"
....

You want to clear only the value in the 6th line, 2nd field in the CSV
file?

Sub foo()
Dim f As Workbook

Application.DisplayAlerts = False
Set f = Workbooks.Open(Filename:="C:\AM\Model\abc.csv", Format:=2)
f.Worksheets(1).Range("B6").ClearContents
f.Close SaveChanges:=True

End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top