Excel 429 VBA中的错误。自动行删除宏

Excel 429 VBA中的错误。自动行删除宏,excel,vba,activex,Excel,Vba,Activex,我最近有一些宏在工作了几个星期后崩溃了。我打开Excel查看“自动化错误灾难性失败”消息。在这里做了一些研究之后,我发现一些信息说明要删除C:\users[USER]\appdata中的一些Temp.exd文件。。。这让我可以实际调试代码,但现在我在上周运行的代码中遇到了429错误。上周,我确实在工作表中添加了引用下面宏的按钮(ActiveX按钮),但即使在给同事发电子邮件之后,它仍然有效。我感到困惑,无法找到答案。此外,这段代码是我第一次真正努力编码,所以欢迎任何和所有信息 Dim workr

我最近有一些宏在工作了几个星期后崩溃了。我打开Excel查看“自动化错误灾难性失败”消息。在这里做了一些研究之后,我发现一些信息说明要删除C:\users[USER]\appdata中的一些Temp.exd文件。。。这让我可以实际调试代码,但现在我在上周运行的代码中遇到了429错误。上周,我确实在工作表中添加了引用下面宏的按钮(ActiveX按钮),但即使在给同事发电子邮件之后,它仍然有效。我感到困惑,无法找到答案。此外,这段代码是我第一次真正努力编码,所以欢迎任何和所有信息

Dim workrange As Range
Dim Firstrow As Integer
Dim Lastrow As Integer
Dim lrow As Integer
Dim arr As String


'Find first and last used row in column S "Observation"
'This macro must be done each time you add new data
Set sht = ThisWorkbook.Sheets("obs")
noObser = sht.ListObjects("noneed").DataBodyRange


Range("S:S").Select
Firstrow = ActiveSheet.UsedRange.Cells(2).Row
Lastrow = ActiveSheet.Range("M1").Offset(Raw.Rows.Count - 1, 0).End(xlUp).Row


'Loop through used cells backwards and delete if needed
For lrow = Lastrow To Firstrow + 1 Step -1
    Set workrange = Cells(lrow, 19)
    If Not IsError(Application.Match(workrange.Value, noObser, 0)) Then workrange.EntireRow.Delete

Next lrow

MsgBox "Extra Activity Removed"

End Sub
守则第2条

Sub RemoveNoActivity()

Dim workrange As Range
Dim Firstrow As Integer
Dim Lastrow As Integer
Dim lrow As Integer
Dim sht As Worksheet
Dim noObser As ListRows

'Find first and last used row in column S "Observation"
'This macro must be done each time you add new data
Set sht = ThisWorkbook.Sheets("Obs")
Set noObser = sht.ListObjects("noneed").DataBodyRange

Range("S:S").Select
Firstrow = ActiveSheet.UsedRange.Cells(2).Row
Lastrow = ActiveSheet.Range("S1").End(xlUp).Row


'Loop through used cells backwards and delete if needed
For lrow = Lastrow To Firstrow + 1 Step -1
    Set workrange = Cells(lrow, 19)
    If Not IsError(Application.Match(workrange.Value, noObser, 0)) Then workrange.EntireRow.Delete

Next lrow

MsgBox "Extra Activity Removed"

End Sub
这就是我现在所处的位置,多亏了BigBen,我已经改变了一点,但我在
set


事实证明,代码很好,我创建了一堆干扰对象调用的Excel对象。在进行更多搜索之后,最好的解决方案是将工作表复制并粘贴到新的工作簿中,然后导出模块。

Raw的用意是什么?noneed表中有多少列?您缺少
noObser=sht.ListObjects之前的
Set
@Jeeped Raw是一张工作表。它以前说sheet1,但我有一个编译器错误,它在早些时候出现了。在将其更改为Raw之后,我收到了类型429错误。编译器错误使
.Rows
。noneed表是一个单列。@BigBen我在添加它之前从未设置过
,添加它后我收到了相同的错误。是的-它不会修复429错误,但仍然是一个错误-慢慢地解决问题。在查找
LastRow
时,您是否打算查看M列而不是S列?此外,无需从
M1
向下偏移
,只需返回
End(xlUp)