Chaitanya Kamble
Chaitanya Kamble

Reputation: 11

Is it possible to use string variable as URL in excel VBA?

As you can see below I have used fileName as string variable,which is used in the URL. When I run the code I get an error stating 'Run time error '-2147217376(80041020) The system cannot locate object specified.' Actually, I want to copy data from a .cg file to Excel. Any alternative method will also do. Please help.

'My Code

Sub ImportCG()

Dim directory As String, fileName As String

   directory = "D:\CG FILE"
  fileName = Dir(directory & "*.cg??")

ActiveWorkbook.Worksheets.Add
   ActiveWorkbook.XmlImport Url:= _
        "D:\CG FILE\filename" _
        , ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")

     'Add CG_List
    Set NewSheet = Sheets.Add(Type:=xlWorksheet)
    ActiveSheet.Name = "CG_List"

    'Copy contents to Component Type List
    Columns("D:D").Select
    Selection.Copy
    Sheets("ComponentTypeList").Select
    Columns("A:A").Select
    ActiveSheet.Paste
    Sheets("CG_List").Select
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    Columns("G:G").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ComponentTypeList").Select
    Columns("B:B").Select
    ActiveSheet.Paste
    Range("B15").Select

End Sub

Upvotes: 1

Views: 1109

Answers (2)

h2so4
h2so4

Reputation: 1577

your directory variable and url need some corrections

Sub ImportCG()

Dim directory As String, fileName As String

   directory = "D:\CG FILE\"
  fileName = Dir(directory & "*.cg??")

ActiveWorkbook.Worksheets.Add
   ActiveWorkbook.XmlImport Url:= _
        directory & filename _
        , ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")

     'Add CG_List
    Set NewSheet = Sheets.Add(Type:=xlWorksheet)
    ActiveSheet.Name = "CG_List"

    'Copy contents to Component Type List
    Columns("D:D").Select
    Selection.Copy
    Sheets("ComponentTypeList").Select
    Columns("A:A").Select
    ActiveSheet.Paste
    Sheets("CG_List").Select
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    Columns("G:G").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ComponentTypeList").Select
    Columns("B:B").Select
    ActiveSheet.Paste
    Range("B15").Select

End Sub

Upvotes: 2

Nathan_Sav
Nathan_Sav

Reputation: 8531

"D:\CG FILE\" & filename you need to concatenate the 2

Upvotes: 1

Related Questions