找不到存在的工作表

我有一个名为“控制”Excel中的工作表。 我收到一个msgbox说它不存在。 点击“OK”后,我得到一个“无效的调用函数或程序的错误,debugging器在这个函数中停止:

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已经在你的问题下面的评论中提到,你正在尝试使用一个工作表对象作为一个stringvariables。

尝试改变你的代码

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

如果您想要通过特定的string名称清除工作表,则应该将您的代码更改为

 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"