【问题标题】:Check if cell next to found value is empty VBA检查找到值旁边的单元格是否为空 VBA
【发布时间】:2017-10-25 23:30:15
【问题描述】:

我对 VBA 完全陌生。我可能每年使用一次,当我这样做时,我会在这个论坛和其他论坛中搜索代码。对于我卑微的需求,这通常很有效。不幸的是,由于我对代码缺乏真正的理解,在这种情况下,我无法看到我做错了什么。所以希望有人可以提供帮助。

我有一个时间表,我想将其中的值复制到数据表中。我有那个工作。但重要的是用户在表格中填写正确的星期数。为了检查他们是否这样做,我编写了一段代码,当未填写周数时应该返回一个消息框。当我简单地使用对单个单元格的引用时,代码就可以工作。但由于周数未填写在所有表单的同一单元格中,我希望宏搜索文本“周数:”,然后检查它旁边的单元格是否为空。

Sub Weeknumber()
dim cl as Range
Worksheets("Invul_Tabel").Activate
With Worksheets("Invul_Tabel").Cells
Set cl = .Find("Weeknummer:", After:=.Range("A1"), LookIn:=xlValues)
If IsEmpty(Range(cl).Offset(0, 1).Value) = True Then
  MsgBox "Geen weeknummer ingevuld"
  Exit Sub
     End If
End With

End Sub

代码在“If IsEmpty”行出现错误(错误 1004)。 可能很简单,但我似乎无法弄清楚!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您的 cl 变量已经是一个范围。

    改变

    If IsEmpty(Range(cl).Offset(0, 1).Value) = True Then
    

    If IsEmpty(cl.Offset(0, 1).Value) Then
    

    【讨论】:

    • 即使没有.Value 属性也可以工作,对吧?
    • 确实如此。但我会删除 .value
    • 最好明确放置.Value,因为 IsEmpty 不需要 Range 对象。如果没有.Value,您将依赖 VBA 将 Range 类的默认属性传递给 IsEmpty。
    • 哇,不知道
    • @Excelosaurus:.Value2 优于 .Value,因为它更快
    猜你喜欢
    • 1970-01-01
    • 2017-07-30
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多