Consulting

Results 1 to 3 of 3

Thread: Dim Array() As Workbook??

  1. #1

    Dim Array() As Workbook??

    I originally Dimmed the array WorkBookNames() as Variant. Now it is biting me in the a$$.

    I wish to Activate WorkBookNames(0) :
    [vba]
    Sub RunMixedMetrics()


    Dim MyPath As String
    Dim WorkBookNames() As Variant

    MyPath = ActiveWorkbook.Path
    'Debug.Print MyPath
    WorkBookNames = Array("20LW6_TEST_redo.xls")
    Workbooks.Open Filename:=MyPath & "\" & WorkBookNames(0)

    WorkBookNames(0).Activate 'THIS LINE FAILS


    'Workbooks(WorkBookNames(0)).Save
    'Workbooks(WorkBookNames(0)).Close
    End Sub
    [/vba]

    I tried

    [VBA]
    Sub RunMixedMetrics()


    Dim MyPath As String
    Dim WorkBookNames() As Variant
    Dim CurrentWorkBook As WorkBook

    MyPath = ActiveWorkbook.Path
    'Debug.Print MyPath
    WorkBookNames = Array("20LW6_TEST_redo.xls")
    Workbooks.Open Filename:=MyPath & "\" & WorkBookNames(0)

    Set CurrentWorkBook = WorkBookNames(0) 'NOW THIS LINE FAILS
    CurrentWorkBook.Activate


    'Workbooks(WorkBookNames(0)).Save
    'Workbooks(WorkBookNames(0)).Close
    End Sub
    [/VBA]

  2. #2
    Distinguished Lord of VBAX VBAX Grand Master Bob Phillips's Avatar
    Joined
    Apr 2005
    Posts
    25,453
    Location
    WorkbookNames is an array of string, not an array of workbooks.

    Use

    [vba]

    Sub RunMixedMetrics()


    Dim MyPath As String
    Dim WorkBookNames() As Variant

    MyPath = ActiveWorkbook.Path
    'Debug.Print MyPath
    WorkBookNames = Array("20LW6_TEST_redo.xls")
    Workbooks.Open Filename:=MyPath & "\" & WorkBookNames(0)

    Workbooks(WorkBookNames(0)).Activate 'THIS LINE FAILS


    'Workbooks(WorkBookNames(0)).Save
    'Workbooks(WorkBookNames(0)).Close
    End Sub
    [/vba]
    ____________________________________________
    Nihil simul inventum est et perfectum

    Abusus non tollit usum

    Last night I dreamed of a small consolation enjoyed only by the blind: Nobody knows the trouble I've not seen!
    James Thurber

  3. #3
    Quote Originally Posted by xld
    WorkbookNames is an array of string, not an array of workbooks.

    Use

    [vba]

    Sub RunMixedMetrics()


    Dim MyPath As String
    Dim WorkBookNames() As Variant

    MyPath = ActiveWorkbook.Path
    'Debug.Print MyPath
    WorkBookNames = Array("20LW6_TEST_redo.xls")
    Workbooks.Open Filename:=MyPath & "\" & WorkBookNames(0)

    Workbooks(WorkBookNames(0)).Activate 'THIS LINE FAILS


    'Workbooks(WorkBookNames(0)).Save
    'Workbooks(WorkBookNames(0)).Close
    End Sub
    [/vba]
    Gracias!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •