ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Help with GetFileName in code (https://www.excelbanter.com/excel-discussion-misc-queries/203251-help-getfilename-code.html)

Ayo

Help with GetFileName in code
 
I am having a problem with this line in my code:
Set f = fs.GetFileName(RFDSFile)
A Type mismatch error message.
Any ideas?
=RFDSFile is a filepath

Sub RFDS_File(RFDSFile As String)
Dim fs, f

Workbooks.Open RFDSFile, ReadOnly:=True
Sheets("RFDS").Select
Worksheets("RFDS").Copy After:=Workbooks("RFDS Tracker GA Market_Form
4C.xls").Sheets("RFDS Tracker (2)")
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFileName(RFDSFile)
Workbooks(f).Close SaveChanges:=False

'Extract_RFDSData

'''''''''''' DELETE RFDS SHEET '''''''''''''''''''''''''''''''''''''''''''''''
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In Worksheets
If Left(sh.Name, 4) = "RFDS" Then
sh.Select
ActiveWindow.SelectedSheets.Delete
End If
Next sh
Worksheets("RFDS Tracker").Range("A4").Select
End Sub


Barb Reinhardt

Help with GetFileName in code
 
I'd make sure you've got

Dim RFDSFile as String

in your original code. I generally put Option Explicit before any Subs in
each module so that it forces me to declare all variables. Some don't like
to play nicely if not declared properly.
--
HTH,
Barb Reinhardt




"Ayo" wrote:

I am having a problem with this line in my code:
Set f = fs.GetFileName(RFDSFile)
A Type mismatch error message.
Any ideas?
=RFDSFile is a filepath

Sub RFDS_File(RFDSFile As String)
Dim fs, f

Workbooks.Open RFDSFile, ReadOnly:=True
Sheets("RFDS").Select
Worksheets("RFDS").Copy After:=Workbooks("RFDS Tracker GA Market_Form
4C.xls").Sheets("RFDS Tracker (2)")
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFileName(RFDSFile)
Workbooks(f).Close SaveChanges:=False

'Extract_RFDSData

'''''''''''' DELETE RFDS SHEET '''''''''''''''''''''''''''''''''''''''''''''''
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In Worksheets
If Left(sh.Name, 4) = "RFDS" Then
sh.Select
ActiveWindow.SelectedSheets.Delete
End If
Next sh
Worksheets("RFDS Tracker").Range("A4").Select
End Sub


Ayo

Help with GetFileName in code
 
This is the originalcode:
Private Sub cmdExtractData_Click()
Me.Hide
If Me.opt_File.Value = True Then
RFDS_File Me.txtFilePath.Value
ElseIf Me.opt_Folder.Value = True Then
Run "DoIt"
Application.ScreenUpdating = False
RFDS_Folder Me.txtFilePath.Value
Run "DoIt"
End If
End Sub

Me.txtFilePath.Value contains the file path

"Barb Reinhardt" wrote:

I'd make sure you've got

Dim RFDSFile as String

in your original code. I generally put Option Explicit before any Subs in
each module so that it forces me to declare all variables. Some don't like
to play nicely if not declared properly.
--
HTH,
Barb Reinhardt




"Ayo" wrote:

I am having a problem with this line in my code:
Set f = fs.GetFileName(RFDSFile)
A Type mismatch error message.
Any ideas?
=RFDSFile is a filepath

Sub RFDS_File(RFDSFile As String)
Dim fs, f

Workbooks.Open RFDSFile, ReadOnly:=True
Sheets("RFDS").Select
Worksheets("RFDS").Copy After:=Workbooks("RFDS Tracker GA Market_Form
4C.xls").Sheets("RFDS Tracker (2)")
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFileName(RFDSFile)
Workbooks(f).Close SaveChanges:=False

'Extract_RFDSData

'''''''''''' DELETE RFDS SHEET '''''''''''''''''''''''''''''''''''''''''''''''
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In Worksheets
If Left(sh.Name, 4) = "RFDS" Then
sh.Select
ActiveWindow.SelectedSheets.Delete
End If
Next sh
Worksheets("RFDS Tracker").Range("A4").Select
End Sub


Dave Peterson

Help with GetFileName in code
 
fs.getfilename will return a string. So you don't need (and can't use) "Set".

f = fs.GetFileName(RFDSFile)

But you don't need FSO to return the name of the file, either.

Dim RFDSWkbk as workbook
....

set rfdswkbk = workbooks.open(filename:=rfdsfile,readonly:=true)
msgbox rfdswkbk.name 'is sufficient
or avoid the name completely later:
rfdswkbk.close SaveChanges:=False

Or you could use use instrrev() to pick out the everything from the last \ in
the filename.

f = Mid(RFDSFile, InStrRev(RFDSFile, "\", -1, vbTextCompare) + 1)

Ayo wrote:

I am having a problem with this line in my code:
Set f = fs.GetFileName(RFDSFile)
A Type mismatch error message.
Any ideas?
=RFDSFile is a filepath

Sub RFDS_File(RFDSFile As String)
Dim fs, f

Workbooks.Open RFDSFile, ReadOnly:=True
Sheets("RFDS").Select
Worksheets("RFDS").Copy After:=Workbooks("RFDS Tracker GA Market_Form
4C.xls").Sheets("RFDS Tracker (2)")
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFileName(RFDSFile)
Workbooks(f).Close SaveChanges:=False

'Extract_RFDSData

'''''''''''' DELETE RFDS SHEET '''''''''''''''''''''''''''''''''''''''''''''''
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In Worksheets
If Left(sh.Name, 4) = "RFDS" Then
sh.Select
ActiveWindow.SelectedSheets.Delete
End If
Next sh
Worksheets("RFDS Tracker").Range("A4").Select
End Sub


--

Dave Peterson


All times are GMT +1. The time now is 10:28 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com