I have a call procedure to clear contents of tables across multiple worksheets. This procedure is invoked only from the 2nd sheet of the workbook. When I invoke this, I am getting Error 1004 "Application-defined or Object-defined error".
Below is the parent code base invoking the sub procedure:
Sub ValidateData_BDV1()
On Error Resume Next
Err.Clear
'''''Define Variables'''''''''
Dim mySheet As Worksheet
Dim mySheetName As String
Dim bdvName As Variant
Dim sqlQuery As String
Dim connectStr As String
Dim wsMatch As Worksheet
Dim myWorkbook As Workbook: Set myWorkbook = ThisWorkbook
'''''''''Set Variables''''''''
cancelEvent = False
Set mySheet = ActiveSheet                   'Sets mySheet variable as current active sheet
mySheetName = mySheet.Name
driverName = mySheet.Range("B1").Value2     'Get the value of the TDV driver
' MsgBox driver
dataSourceName = mySheet.Range("B3").Value2 'Get the data source name for the published TDV database
' MsgBox dataSourceName
schemaName = mySheet.Range("B5").Value2     'Get the schema name of the published tdv view
bdvName = mySheet.Range("B6").Value2        'Get the name of the published BDV
''''''''''Refresh data across sheets'''''''''''''
Application.ScreenUpdating = False      'Prevent screen flickering while doing the refresh
'''''''''''''''''''''''''''''''''''''''
 ''''''''''''Call sub procedure'''''''''    
Call ClearTableContents
 ''''''''''''''''''''''''''''''''''''
mySheet.Activate
Application.ScreenUpdating = True       'Prevent screen flickering while doing the refresh
''''''''Show User id and Password box'''''''''
If Len(Uid) < 1 Or Len(Password) < 1 Then
    UserForm1.Show
End If
If (cancelEvent = True) Then
    Exit Sub
End If
............
............perform some task with error handling
Below is the code base of the called Sub
 Sub ClearTableContents()
 Dim wrksht As Worksheet
 Dim objListObj As ListObjects
 Dim tableName As String
 Dim ActiveTable As ListObject
 Dim rowCount As Integer
 Dim colCount As Integer
 Dim i As Integer
 Dim j As Integer
 '''''Iterate through the Bdv1, bdv2 and Match sheets. Set default table sizes for each 
 sheet'''''''''
 For j = 2 To 4
    If (j = 2) Or (j = 3) Then
        rowCount = 5
        colCount = 6
    ElseIf (j = 4) Then
        rowCount = 5
        colCount = 9
    End If
    Application.ScreenUpdating = False      'Prevent screen flickering while doing the refresh
    Set wrksht = ActiveWorkbook.Worksheets(j)
    Set objListObj = wrksht.ListObjects     'Get list of tables objects from the current sheet
'''''''Iterate through the tables in the active worksheet''''''''''''''
    For i = 1 To objListObj.Count
        tableName = objListObj(i).Name
        Set ActiveTable = wrksht.ListObjects(tableName)
        On Error Resume Next
''''''For each table clear the contents and resize the table to default settings''''''''''''
        With wrksht.ListObjects(i)
            .DataBodyRange.Rows.Clear
            .Range.Rows(rowCount & ":" & .Range.Rows.Count).Delete
            .HeaderRowRange.Rows.ClearContents
            .HeaderRowRange.Rows.Clear
            .Range.Columns(colCount & ":" & .Range.Columns.Count).Delete
            .Resize .Range.Resize(rowCount, colCount)
        End With
        wrksht.Columns("A:Z").AutoFit
    Next i
Next j
ThisWorkbook.Worksheets(2).Activate '''set the active sheet to the sheet number 2
Application.ScreenUpdating = True      'Prevent screen flickering while doing the refresh
Exit Sub
'Error Handling
NoTableSelected:
  MsgBox "There is no Table currently selected!", vbCritical
End Sub
Please help in resolving the issue. If I execute as independent macro on click of the button, it works perfectly well.
 
    