一无所获时查找崩溃

时间:2018-09-18 11:12:35

标签: excel vba

我有一张工作表,上面列出了名为Matrix的课程名称。在另一张名为Courses Date的工作表中,我将选择与他们修读日期相同的课程。

示例:

名为Safety Driving的课程将位于第1行的Matrix中。在Courses Date中有来自E1:BF1的同名数据。如果课程需要补习,将在另一列中命名与课程名称完全相同的名称+ RefresherSafety Driving Refresher)。

我想做的是查找一门课程是否设有复习课程。如果未找到任何内容,我的代码将返回运行时错误'91': Object variable or With block variable not set

这是我的代码:

RefresherColNumber = Range("'Courses Date'!E1:BF1").Find(Range("'Matrix'!" & courseColLetter & "1").Value & " Refresher").Column

2 个答案:

答案 0 :(得分:1)

添加支票

HttpStatusCode

答案 1 :(得分:0)

如果在行中找到值,则可以使用Application.Match进行IsError测试,并在找到的位置加4以获取列。您还应该使用父级工作表对象来限定范围,以避免使用隐式活动表引用的错误。

Dim matchValue As Variant
matchValue = Application.Match(Range("'Matrix'!" & courseColLetter & "1").Value & " Refresher", Range("'Courses Date'!E1:BF1"), 0)

If Not IsError(matchValue) Then RefresherColNumber = matchValue + 4