我有一个 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/