Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 03-30-2018, 07:14 PM
macropod's Avatar
macropod macropod is offline Testing for 'Object has been deleted' error Windows 7 64bit Testing for 'Object has been deleted' error Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,384
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Quote:
Originally Posted by Cosmo View Post
I have a function which needs to perform several operations on a table "oTb", one of them will remove empty rows "oTbl.rows(row).delete".



If the table is completely empty, all rows are deleted, and the table is deleted. But the object is still valid, and I need to be able to test to see if the table has been deleted. "oTbl is Nothing" evaluates false, even though the table doesn't exist.
How about posting the code that's doing the row deletion? It seems that's the logical place to test the status of oTbl.
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote
  #2  
Old 03-31-2018, 02:55 AM
slaycock slaycock is offline Testing for 'Object has been deleted' error Windows 7 64bit Testing for 'Object has been deleted' error Office 2016
Expert
 
Join Date: Sep 2013
Posts: 255
slaycock is on a distinguished road
Default

You were very close to a solution by the use of the count property. You just needed to apply it to the table range rather than count rows.

Code:
Sub process_table(this_table As Word.Table)

Dim a_range As Word.Range

    Set a_range = this_table.Range

    Do While a_range.Tables.Count > 0
    
        'Put your code here
        
    Loop
    
End Sub
Reply With Quote
  #3  
Old 03-31-2018, 04:01 AM
slaycock slaycock is offline Testing for 'Object has been deleted' error Windows 7 64bit Testing for 'Object has been deleted' error Office 2016
Expert
 
Join Date: Sep 2013
Posts: 255
slaycock is on a distinguished road
Default

ON rereading the original post my example might be better as

Code:
Sub process_table(this_table As Word.Table)

Dim a_range As Word.Range

    Set a_range = this_table.Range

    ' Do a process on the table
    If a_range.Tables.Count = 0 Then Exit Sub
    
    ' Do a process on the table
    If a_range.Tables.Count = 0 Then Exit Sub
    
    ' Do a process on the table
    If a_range.Tables.Count = 0 Then Exit Sub
        
    Loop
    
End Sub
Reply With Quote
  #4  
Old 04-04-2018, 05:12 AM
Cosmo Cosmo is offline Testing for 'Object has been deleted' error Windows Vista Testing for 'Object has been deleted' error Office 2007
Competent Performer
Testing for 'Object has been deleted' error
 
Join Date: Mar 2012
Posts: 240
Cosmo is on a distinguished road
Default

Quote:
Originally Posted by macropod View Post
How about posting the code that's doing the row deletion? It seems that's the logical place to test the status of oTbl.
Here is the code I'm using, the issue is that if all rows are deleted, the table no longer exists, but the reference to oTable is not 'Nothing'. There are other steps which need to be performed to the table after deleting the rows, but I need to be able to test to see if the table has been deleted so I can skip those steps.
Code:
' Remove empty rows
rowCount = oTbl.Rows.count
columnCount = oTbl.Columns.count
For row = rowCount To 1 Step -1
    delete = True
    For column = 1 To columnCount
        If Not (oTbl.Cell(row, column).Range.Text = Chr(13) & Chr(7)) Then
            delete = False
            Exit For
        End If
    Next column
    If (delete) Then
        ' Remove row
        Call oTbl.Rows(row).delete
    End If
Next row
 
' NOTE: Need to check to see if table still exists here (If all rows were deleted)
If (tableExists(oTbl)) Then   ' Can't test for Nothing - object has been deleted, but is NOT nothing.
    ' Do other processing steps to table...
For now, I am using the 'tableExists' function I originally posted to test for the table, but I'd prefer to use a valid test, not testing for error.
Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
set row object variable error CLoos Excel Programming 6 03-10-2017 04:48 PM
Testing for 'Object has been deleted' error Run-time error '424': Object required zlodeh Excel Programming 1 02-24-2016 01:58 AM
Testing for 'Object has been deleted' error Run Time Error 424 - Object Required Doug Needham Excel Programming 4 01-12-2015 10:54 PM
Testing for 'Object has been deleted' error Error Message: Could not load an object... simstem Word 1 10-06-2012 08:44 PM
XML parsing & Object variable not set (Error 91) tinfanide Excel Programming 0 12-29-2011 08:43 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 04:48 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft