找不到存在的工作表
我有一个名为“控制”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"