如果给定范围内的任何单元格为空,我试图返回一条消息。如果我声明范围,即
Set OrderRng = [C1: C41]
它工作正常,但如果我这样声明;
Set OrderRng = Range("c1:" & ActiveSheet.Range("c65536"). End(xlUp).Address).Select`
它不起作用。
我知道第二个参数范围被正确声明,因为它总是突出显示正确的单元格。
我的整个代码看起来像这样;
> Sub BlankCell() Dim OrderRng As Range On Error Resume Next
>
> Set OrderRng = Range("c1:" & ActiveSheet.Range("c65536").End(xlUp).Address).Select
>
> ' Set OrderRng = [C1: C41] ' Rm'd for testing
>
> Set OrderRng = OrderRng.SpecialCells(xlCellTypeBlanks)
>
> If Err = 0 Then MsgBox "An Order ID is missing on one of your entries,
> please amend then try again" End If End Sub
我做错了什么,我知道这很明显,但不是我。
非常感谢
答案 0 :(得分:2)
要修复,只需从范围变量设置行的末尾删除.select
:
Set OrderRng = Range("c1:" & ActiveSheet.Range("c65536").End(xlUp).Address)
.select
方法会返回TRUE
或FALSE
值,因此您最终会遇到尝试Set OrderRng
到TRUE
的类型不匹配,这是一个布尔值,不是范围。
此外,100%没有理由select
在这里,您的代码应继续保持良好状态。