excel 2016 vba检查并更改具有相同实例打开的多个窗口的工作表

时间:2018-07-28 22:48:23

标签: excel vba excel-vba

我已经找到了很多有关使用多个窗口的信息,但不足以使我熟悉这个窗口。

使用具有多个窗口的Excel 2016打开如何使用VBA来检查每个窗口中打开了哪个工作表?

作为一个例子... 该文件是“ Open File.xlsm” 它具有从“ Sheet1”到“ Sheet9”的表格 有3个打开的窗口

如何确定“ Sheet5”是否在任何打开的窗口中打开?

Function CheckForSheet5() As Boolean

    Dim ExcelWindow as Window
    For Each ExcelWindow in Application.Windows

        ' I'm lost for ideas in here

    Next ExcelWindow

End Function

随后如何使用VBA更改每个窗口中可见/激活的工作表?我是否需要通过激活窗口来循环浏览?还是有其他方法?

上下文 我正在开发一种工具,以帮助预算和优化大型车队的维护。该工具在不同工作表上的不同表(维护任务,燃油费率,轮胎使用情况等)中都有大量输入,还有一个用于打开和关闭设备的分配表以及一系列输出仪表板在不同的工作表上。

参与团队全都使用最少2个屏幕(通常是3个屏幕,最多4个屏幕),因此我们进行了设置,目的是在同一Excel实例中使用多个窗口(燃油价格更改为1)窗口,输出立即在另一个窗口中更改。)

1 个答案:

答案 0 :(得分:1)

此代码似乎可以在多个窗口中使用。

Sub wndows()
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim v As Variant
    Dim w As Window

    Set wb = Excel.Application.ThisWorkbook

    For Each v In wb.Windows
        Set w = v

        'set ws to the active sheet that's in the current window
        Set ws = w.ActiveSheet

        If ws.Name = "Sheet5" Then
            w.Activate
            MsgBox ws.Name
            Exit For
        End If
    Next
End Sub

这是我测试过的输出的图像: answer