简体   繁体   中英

How to clear contents of an Excel Workbook through vba

I am trying to automate data with a master wookbook. When I open the workbook I want a msg box to appear and clear the contents of specific columns in tables in one of the worksheets. I keep getting the "Application-defined or object-defined error". This is the code in my "This workbook" section:

Option Explicit

Sub Workbook_Open()

Dim answer As Integer

answer = MsgBox("Do you want to clear the totals?", vbYesNo + vbQuestion, "Clear Totals")

If answer = vbYes Then

Call Sheet1.ClearContents_1

End If

End Sub

This is my Sheet1 code:

Sub ClearContents_1()

Call Loop_Clear_C

Call Loop_Clear_M

Call Clear_S

End Sub

Sub Loop_Clear_C()

For i = 1 To Range("UserTable79").Rows.Count
    Range("UserTable79[Total]")(i) = 0
Next i
End Sub

Sub Loop_Clear_M()

For i = 1 To Range("ServiceTable79").Rows.Count
    Range("ServiceTable79[Total]")(i) = 0
Next i
End Sub

Sub Clear_S()

Range("TotalTable79[Actual Total]").ClearContents

End Sub

They worked separately but not together. The msg box comes up but doesn't run the Sheet1 code. How do I call upon this sheet code?
Edit: The Sheet1 code no longer works either.

Often the "Application-defined or object-defined error" message comes up when the range that you're referring to doesn't exist. If you click on Sheet1 to activate it and then try to use the Immediate panel to perform an operation on the ranges you're referring to (eg try entering Range("UserTable79").Select ) do you get an error?

Explicitly specifying the worksheet when calling the function from the "ThisWorkbook" section (eg if the worksheet is named "SheetName" then specifying Call ThisWorkbook.Sheets("SheetName").ClearContents_1 rather than Call Sheet1.ClearContents_1 ) can help.

Also - note that you can clear the entire table ranges or entire columns in Loop_Clear_C and Loop_Clear_M with ClearContents or EntireColumn.ClearContents if that's easier.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM