Excel 2013中的扩展工作表选择 - VBA

时间:2016-08-29 07:15:55

标签: vba excel-vba excel

您能否帮助理解为什么此代码适用于旧版本的Excel但不适用于Excel 2013? <composite:clientBehavior name="change" event="change" targets="abcde" /> 的行被忽略。它与某些中心设置有关吗?应该修改什么?

replace:=false

1 个答案:

答案 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