vba错误处理选择动态单元格范围

时间:2013-12-28 23:43:02

标签: excel-vba dynamic error-handling range vba

阅读帖子Excel VBA - select a dynamic cell range

我有一个额外的问题来补充你的答案,如果它发现没有srange(没有找到所寻求的动态范围),我们将如何处理错误以使其做其他事情?

在我的待办事项清单中了解错误处理很多!!

我非常感谢任何建议。

谢谢!

1 个答案:

答案 0 :(得分:0)

我不赞成先前问题的答案。是的,他们为“我怎么做X?”这个问题提供了很好的答案,但没有人补充说你不应该做X.

我知道Macro Recorder会大量使用Selection,但是宏会在用户操作时记录它们;它不知道用户的意图,也无法创建良好的VBA。总是有一种VBA可供选择更好,更快,更容易理解的范围。也许我应该说几乎总是因为存在选择可能更容易解决的模糊情况。

例如,如果您希望选择范围并将其粘贴到其他位置,您可以发现以下内容更容易编码和理解:

range.Copy Destination := Cell
好的,我会把我的爱好马放回柜子里回答你的问题。

Dim Rng As Range

Set Rng = expression returning a range

' Examples from question
Set Rng = Range("A1:M1")
Set Rng = Range(Cells(1,1),Cells(1,Columns.Count).End(xlToLeft))
Set Rng = Range("A1:" & Cells(1, i).Address)
Set Rng = Range(Cells(1, Col1), Cells(1, Col2)) 

If Rng Is Nothing Then

  ' Code to handle situations where range does not exist

Else

  ' Code to handle situations where range does exist

End If