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

Vba 检查选择是否等于预定范围,vba,excel,excel-2010,Vba,Excel,Excel 2010,我为此编写了一段代码,其目的如下:用户必须在Sheet1上选择一个范围,然后按下一个指定宏的按钮。然后,宏将检查用户选择的范围是否等于预定范围(也在表1上)。如果两个范围相同,则宏将选择Sheet2并完成其他任务。如果范围不相等,则宏将停止。代码如下: Sub Example_1() Dim OriginalSelection As Range Set OriginalSelection = Selection If Worksheets("Sheet1").Rang

我为此编写了一段代码,其目的如下:用户必须在Sheet1上选择一个范围,然后按下一个指定宏的按钮。然后,宏将检查用户选择的范围是否等于预定范围(也在表1上)。如果两个范围相同,则宏将选择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转


谢谢:

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

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

您可以尝试将范围.地址与一行进行比较:

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

第四个参数External=True将返回整个范围,包括工作簿.Name和Sheet.Name

如果两个范围相同,您的确切含义是什么?例如,如果预定范围是Sheet1上的S8:AC8,并且如果用户选择Sheet1上的范围S8:AC8,则这两个范围相同。我这里不是说手机内容。对不起,如果它是含糊不清的,我仍然在学习适当的行话!好的,如果工作表sheets1.RangeS8:AC8.address=OriginalSelection.address.Works像一个符咒一样工作,试试这个!谢谢
If Worksheets("Sheet1").Range("S8:AC8").Address(True, True, xlA1, True) = OriginalSelection.Address(True, True, xlA1, True) Then