检查选择是否等于预定范围

时间:2017-04-12 16:12:37

标签: excel vba excel-vba excel-2010

我为此编写了一些代码,其目的如下:用户必须在Sheet1上选择一个范围,然后按下分配了宏的按钮。然后宏将检查用户选择的范围是否等于预定范围,也在Sheet1上。如果两个范围相同,则宏将选择Sheet2并完成其他任务。如果范围不相等,则宏将停止。这是代码:

Sub Example_1()

    Dim OriginalSelection As Range
    Set OriginalSelection = Selection

    If Worksheets("Sheet1").Range("S8:AC8") = OriginalSelection Then
        Sheets("Sheet2").Select
        'The macro will do other things here
    Else
        Exit Sub
    End If

End Sub

这就是说,每当我尝试运行宏时,我都会收到以下错误:

  

运行时错误'13':输入不匹配

有人知道问题所在吗?我仍然试图围绕VBA!

谢谢:)

2 个答案:

答案 0 :(得分:1)

要检查工作表是否相同,您可以使用完整地址:

If Selection.Address(0, 0, , 1) = "[Book1]Sheet1!S8:AC8" Then

If Selection.Address(0, 0) = "S8:AC8" And Selection.Parent.Name = "Sheet1" Then

答案 1 :(得分:0)

您可以尝试将Range.Address与一行进行比较:

If Worksheets("Sheet1").Range("S8:AC8").Address(True, True, xlA1, True) = OriginalSelection.Address(True, True, xlA1, True) Then

第四个参数External = True将返回完整的范围,包括Workbook.NameSheet.Name