VBA代码仅在调试模式下有效,在正常模式下运行时会挂起

gue*_*st1 2 excel vba excel-vba

这个问题让我抓狂.我有以下代码:

'unprotect sheet
If.Range("Start").Row+1<.Range("End").Row then
  .Rows(.Range("Start").Row+1 & ":" & .Range("End").Row-1).Select
  Selection.Delete Shift:=xlUp
  'protect sheet
End if
Run Code Online (Sandbox Code Playgroud)

当我在调试模式下运行它并跟踪代码时,它完美地工作.但是当以正常模式运行代码(而不是调试)时,它给出了一条错误消息,因为"Range类的select方法失败了"这个错误发生在行中:.Rows(.Range("Start").Row +1 .... 就在IF语句之后.有任何想法吗?请帮忙.

GSe*_*erg 5

此错误通常意味着您尝试选择属于非活动工作表的范围.

几乎总是不需要选择任何东西:

.Rows(.Range("Start").Row+1 & ":" & .Range("End").Row-1).Delete Shift:=xlUp
Run Code Online (Sandbox Code Playgroud)