我为此编写了一些代码,其目的如下:用户必须在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!
谢谢:)
答案 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.Name
和Sheet.Name