将Excel窗口大小更改为屏幕的一半

将Excel窗口大小更改为屏幕的一半,excel,vba,windows,screen-size,Excel,Vba,Windows,Screen Size,我有4个Excel窗口: Microsoft Visual Basic for Applications-PERSONAL.XLSB[中断] 工作手册1 工作手册2 工作手册3 我想用这种方式更改窗口的大小: VBA将是:高度=计算机高度的100%,宽度=计算机宽度的50%,窗口位置应在右侧 工作手册1-3将是:高度=我电脑高度的100%,宽度=我电脑宽度的50%,窗口的位置应在左侧 **我想要访问Microsoft Visual Basic for Applications-PERSO

我有4个Excel窗口:


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

  • 工作手册1

  • 工作手册2

  • 工作手册3

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

  • VBA将是:高度=计算机高度的100%,宽度=计算机宽度的50%,窗口位置应在右侧

  • 工作手册1-3将是:高度=我电脑高度的100%,宽度=我电脑宽度的50%,窗口的位置应在左侧


**我想要访问Microsoft Visual Basic for Applications-PERSONAL.XLSB[break]我需要一个windows系统库的参考,但我相信这是可能的


有什么想法吗?

也许这会对你有所帮助

Sub SetWindowSize1()
    Application.WindowState = xlNormal
    Application.Top = 25
    Application.Left = 25
    Application.Width = 300
    Application.Height = 200
End Sub
要根据屏幕大小设置窗口宽度和高度,请参见以下代码:

要在VBA窗口中循环的代码:

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

您可以尝试以下代码:

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的窗口,并添加对我的库的引用。谢谢,我一定会查看它。我正试图在计算机打开的窗口中循环,以便访问VBA窗口:Microsoft Visual Basic for Applications-PERSONAL.XLSB[break],有什么想法吗?