您能否帮助理解为什么此代码适用于旧版本的Excel但不适用于Excel 2013? <composite:clientBehavior name="change" event="change" targets="abcde" />
的行被忽略。它与某些中心设置有关吗?应该修改什么?
replace:=false
答案 0 :(得分:0)
我在Excel 2013中尝试了您的代码。可能的原因可能是ThisWorkbook不是活动工作簿或工作表不可见。您应该只在活动工作簿上使用select函数。请参阅下面的代码更新 - 我在带有隐藏工作表的工作簿中使用它并且它工作正常。查看VBA编辑器中的即时窗口(Ctrl + G)以查看调试消息。请注意,隐藏的工作表也适用于变量'n'。希望它有所帮助。
Sub test()
Dim i
Dim n
Dim foundFirstVisSheet As Boolean
foundFirstVisSheet = False
n = InputBox("type n")
Dim mySh As Worksheet
For i = 1 To n
Set mySh = ActiveWorkbook.Sheets(i)
If mySh.Visible = xlSheetVisible Then
If Not foundFirstVisSheet Then
foundFirstVisSheet = True
mySh.Activate
End If
Debug.Print mySh.Name & " is visible"
mySh.Select Replace:=False
Else
Debug.Print mySh.Name & " is invisible and cannot be selected"
End If
Next i
End Sub