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