excel - 如何通过vba清除Excel工作簿的内容
问题描述
我正在尝试使用主 wookbook 自动化数据。当我打开工作簿时,我希望出现一个消息框并清除其中一个工作表中表格中特定列的内容。我不断收到“应用程序定义或对象定义的错误”。这是我的“此工作簿”部分中的代码:
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
这是我的 Sheet1 代码:
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
他们分开工作,但没有一起工作。消息框出现但不运行 Sheet1 代码。我如何调用此工作表代码?
编辑:Sheet1 代码也不再有效。
解决方案
当您引用的范围不存在时,通常会出现“应用程序定义的或对象定义的错误”消息。如果您单击 Sheet1 将其激活,然后尝试使用“立即”面板对您所指的范围执行操作(例如尝试输入Range("UserTable79").Select
),您会收到错误吗?
从“ThisWorkbook”部分调用函数时显式指定工作表(例如,如果工作表名为“SheetName”,则指定Call ThisWorkbook.Sheets("SheetName").ClearContents_1
而不是Call Sheet1.ClearContents_1
)会有所帮助。
另外 - 请注意,您可以清除整个表格范围或整个列Loop_Clear_C
,或者如果这更容易Loop_Clear_M
。ClearContents
EntireColumn.ClearContents
推荐阅读
- javascript - 我们可以一键检索给帐户的广告价格吗 - Google Adsense
- swift - SwiftUI 中的 Chat 样式的 ScrollView
- react-native - 测试 expo sdk 39 但在 expo-yarn-workspaces 上失败
- qt - 将 QLabel 连接到 QSlider 的问题
- python - Python:登录身份验证后从 URL 下载 CSV 文件
- xaml - UI 看起来在使用 xamarin.forms 的 ios 的初始加载中被裁剪
- android - Kotlin 的洪水填充
- vue.js - 没有覆盖 NODE_ENV 的 vue 构建
- javascript - 在没有ffmpeg的python中将ogg音频转换为wav
- snowflake-cloud-data-platform - 雪花:自动克隆过程