I am trying to copy the string values(column titles) from another workbook in row 4 as captions for checkboxes in the workbook where I am running the code. This is what I have so far and it is not working because it is showing the error message "Subscript out of range, run time error 9" Here is what I have. After the error message pops up the line marked below is highlighted. Can anybody help me please. Thank you very much.
 Function CallFunction(SheetName As Variant) As Long
 Dim text As String
 Dim titles(200) As String ' Dim titles(200) As String ' Array
 Dim nTitles As Integer
 Dim wks As Worksheet
 Dim myCaption As String
 PathName = Range("F22").Value
 Filename = Range("F23").Value
 TabName = Range("F24").Value
 ControlFile = ActiveWorkbook.Name
 Workbooks.Open Filename:=PathName & "\" & Filename
 ActiveSheet.Name = TabName
 Set wks = Workbooks("Filename").Worksheets(SheetName).Activate  ' <= Highlights this line ****
 For i = 1 To 199
     If Trim(wks.Cells(4, i).Value) = "" Then
        nTitles = i - 1
        Exit For
    End If
        titles(i - 1) = wks.Cells(4, i).Value
 Next
 i = 1
 For Each cell In Range(Sheets("Sheet1").Cells(4, 1), Sheets("Sheet1").Cells(4, 1 + nTitles))
    myCaption = Sheets("Sheet1").Cells(4, i).Value
    With Sheets("Sheet1").checkBoxes.Add(cell.Left, _
        cell.Top, cell.Width, cell.Height)
        .Interior.ColorIndex = 12
        .Caption = myCaption
        .Characters.text = myCaption
        .Border.Weight = xlThin
        .Name = myCaption
    End With
    i = i + 1
 Next
 End Function
 
     
    