excel - 找不到存在的工作表

标签 excel vba

我有一个 Excel 工作表,名称为“Control”。我收到一条消息框,说它不存在。单击“确定”后,出现“函数或过程调用无效,并且调试器在此函数中停止:

”的错误
Private Sub ClearData(dataSheet As Worksheet)
    'On Error Resume Next
        'dataSheet.rows(DataRow1 & ":" & dataSheet.rows.Count).SpecialCells(xlCellTypeConstants).ClearContents
        Sheets(dataSheet).UsedRange.ClearContents
End Sub

此函数用于清除工作表和注释 'dataSheet.rows(DataRow1 & ":"& dataSheet.rows.Count).SpecialCells(xlCellTypeConstants).ClearContents 之前的代码,因为引发错误,我决定修改行 Sheets(dataSheet).UsedRange.ClearContents 但问题仍然存在。

编辑 ClearData 使用以下代码调用:

Public Sub Init(rowNr As Integer, copyMap As CopyActionsMap, dataSheet As Worksheet)

    m_configRowNr = rowNr
    Set m_dataSheet = dataSheet
    m_dataRowNr = FindDataRow
    m_dataSheet.Cells(m_configRowNr, 1).Select 'select first cell in config row
    If (Not m_initialized) Then Set m_columnCopyConfigs = GetColumnCopyConfigs(copyMap) 'also sets m_count
    ClearData (m_dataSheet) 'Clean the existing data Now it says "object doenst support this method or property" after this: Private Sub ClearData(dataSheet As Worksheet) Sheets(dataSheet).Cells.Delete

End Sub

最佳答案

正如 @tigeravatar 在您的问题下面的评论中提到的,您正在尝试使用工作表对象作为字符串变量。

尝试将代码更改为

Private Sub ClearData(dataSheet As Worksheet)
    'On Error Resume Next
        'dataSheet.rows(DataRow1 & ":" & dataSheet.rows.Count).SpecialCells(xlCellTypeConstants).ClearContents
        dataSheet.UsedRange.ClearContents
End Sub

如果您想通过特定字符串名称清除工作表,您应该将代码更改为

Private Sub ClearData(dataSheet As String)
    'On Error Resume Next
        'dataSheet.rows(DataRow1 & ":" & dataSheet.rows.Count).SpecialCells(xlCellTypeConstants).ClearContents
        Sheets(dataSheet).UsedRange.ClearContents
End Sub

然后您可以通过调用清除名为“Test Sheet”的工作表

ClearData "Test Sheet"

关于excel - 找不到存在的工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34880119/

相关文章:

arrays - 从未知维度的多维数组中获取元素

excel - 单元格值未显示在 VBA 中

excel - 使用 VBA 更改 Excel 中选项卡的颜色?

sql - SQL 十进制的 ADO VBA 类型?

java - 如何使用Java在Excel中输入无效的公式

java.io.IOException : Failed to read zip entry source 异常

vba - 基于标准的自动过滤列 - 位数

ms-access - 将表名和字段名作为字符串传递给函数

vba - 如何检查单元格是否包含有效的 IPv6 地址?

regex - VBA正则表达式匹配时间范围,如 "1:30pm - 12:00am"