VBA错误无效使用属性
问题描述:
这肯定是要求的,但我不确定这些答案是如何适用于我的问题,所以它仍然没有解决。当我点击某个电子表格并且能够做到这一点之前,我正在调用某些代码,直到我添加了第四个新代码。现在当我点击工作表2,工作表下面的代码时,它突出显示了Sub Worksheet_Activate()并显示了属性的无效使用。VBA错误无效使用属性
Sub Worksheet_Activate()
Call VBAProject.Module1.ComplexCopyPust
Call VBAProject.Module2.ComplexCopyPust
Call SetPrintArea
Call Sort
End Sub
我只添加了呼叫排序。它预先与所有其他代码一起工作。
调用以下的排序代码。我用记录宏创建它。
Sub Sort()
'
' SortNumberLetter Macro
'
On Error Resume Next
'Finds last row of content
ALastFundRow = Columns("C").Find("*", SearchDirection:=xlPrevious,
SearchOrder:=xlByRows, LookIn:=xlValues).Row
'
On Error Resume Next
Range("A8:Q" & ALastFundRow).Select
ActiveWindow.SmallScroll Down:=-462
ActiveWorkbook.Worksheets("WIRE SCHEDULE").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("WIRE SCHEDULE").Sort.SortFields.Add Key:=Range(_
"A8:A" & ALastFundRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
ActiveWorkbook.Worksheets("WIRE SCHEDULE").Sort.SortFields.Add Key:=Range(_
"C8:C" & ALastFundRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("WIRE SCHEDULE").Sort
.SetRange Range("A8:Q" & ALastFundRow)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
任何帮助!
答
您需要或者有资格Sort
模块名,这是在(如VBAProject.Module1.Sort
),或不使用Sort
作为子程序的名称(因为VBA与代码是纸张的Sort
财产混淆它有关联)。
我会强烈建议更改子程序的名称。 (也许将子程序名称从Sort
更改为SortNumberLetter
。)
+0
这工作。谢谢! –
步骤1在调试中:摆脱“On Error Resume Next”。你不应该把它当作'On Error Hide Bug'(这是你如何使用它)。在VBA编程中确实是一个坏习惯。不要沉默错误 - *处理*他们。 –
@JohnColeman我只包括这个,因为有时候我们用它作为模板时表单会空白。每当我们打开一本新的工作手册开始工作时,不得不点击忽略它。但是在编写新代码时我会注意到。我对此很新,所以我试图尽可能地坚持下去。 –
如果Range.Find没有找到任何内容,则返回'Nothing' - 这会使链接的'.Row'调用失败并显示运行时错误91,您可以非常轻松地避免该错误,而不是忽略它,高兴地继续执行。经验法则,如果你输入'On Error Resume Next',你就会犯错。 –