【问题标题】:Change Excel Windows sizes to half the screen将 Excel Windows 大小更改为屏幕的一半
【发布时间】:2020-01-31 10:09:24
【问题描述】:

我有 4 个 Excel 窗口:

  • Microsoft Visual Basic for Applications - PERSONAL.XLSB [break]

  • 工作簿1

  • 工作簿2

  • 工作簿3

我想以这种方式更改窗口的大小:

  • VBA 将是:高度 = 我的计算机高度的 100%,宽度 = 我计算机宽度的一半的 50%,并且窗口的位置应该在右侧。

  • 工作簿 1-3 将是:高度 = 我的计算机高度的 100%,宽度 = 我计算机宽度的一半的 50%,并且窗口的位置应该在左侧。

**我猜是为了访问 Microsoft Visual Basic for Applications - PERSONAL.XLSB [break] 我需要一个对 windows 系统库的引用,但我相信它应该是可能的

有什么想法吗?

【问题讨论】:

    标签: excel vba windows screen-size


    【解决方案1】:

    你可以试试下面的代码:

    Sub ChangeWindowSize()
        ' get size of a screen
        Application.WindowState = xlMaximized
        windWidth = Application.width
        windHeight = Application.height
        ' set size and location of a main workbook
        Application.WindowState = xlNormal
        Application.Top = 0
        Application.Left = 0
        Application.width = windWidth / 2
        Application.height = windHeight
    
        Call OpenOtherWorkBookAndSetSize(windWidth, windHeight)
    End Sub
    
    Sub OpenOtherWorkBookAndSetSize(windWidth As Variant, windHeight As Variant)
        Dim appExcel As Application
        Dim objWorkbook As Workbook
        Dim i As Integer
    
        'create new excel application object
        Set appExcel = New Application
        'open other workbook
        Set objWorkbook = appExcel.Workbooks.Open("path to the file")
        ' just example setting
        appExcel.WindowState = xlNormal
        appExcel.Top = 0
        appExcel.Left = windWidth / 2
        appExcel.width = windWidth / 2
        appExcel.height = windHeight
        appExcel.Visible = True
    End Sub
    

    它会将您的屏幕分成两半 :) 现在您可以进一步修改此代码 :)

    示例结果:

    【讨论】:

    • 这是一个很好的解决方案,谢谢。我编辑了原始帖子,我需要更改一个不是窗口对象或工作簿对象的窗口,它是一个 Microsoft Windows 窗口,我想我需要参考 Windows 系统库,但我相信这应该是可能的,有什么想法吗?
    • Microsoft Visual Basic for Applications - PERSONAL.XLSB 不是工作簿。当您在 Excel 中单击 Alt+F11 时,它将打开不是工作簿的 Visual Basic。我需要右侧的屏幕,这意味着我可能必须控制我的 Windows 10 的窗口并添加对我的库的引用
    【解决方案2】:

    也许这会对你有所帮助。

    Sub SetWindowSize1()
        Application.WindowState = xlNormal
        Application.Top = 25
        Application.Left = 25
        Application.Width = 300
        Application.Height = 200
    End Sub
    

    根据屏幕大小设置窗口的宽度和高度,代码如下: https://www.ozgrid.com/forum/index.php?thread/142634-vba-to-automatically-resize-user-form-depending-on-screen-resolution/

    循环遍历 VBA 窗口的代码:

    Sub ListWindows()
    Dim wn As Excel.Window
    For Each wn In Application.Windows
        MsgBox wn.Caption
    Next wn
    End Sub
    

    【讨论】:

    • 谢谢,我一定会去看看的。我正在尝试循环浏览计算机打开的窗口,以便进入 VBA 窗口:Microsoft Visual Basic for Applications - PERSONAL.XLSB [break],有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    相关资源
    最近更新 更多