【问题标题】:How to fix "Run-time error 1004, Method "Width" of object "_Application" failed"如何修复“运行时错误 1004,对象“_Application”的方法“宽度”失败”
【发布时间】:2019-07-12 07:56:44
【问题描述】:

我有一个代码应该在打开应用程序并选择该工作簿中的特定工作表时管理 Excel 工作簿的显示大小。希望是为其他窗口/应用程序保留尽可能多的桌面。工作簿中的两个工作表受到保护,其中一个是我希望在打开文件时显示的工作表。但是我不相信工作表必须不受保护才能调整应用程序窗口的大小。我添加了这些信息是因为你比我聪明。 我从开发人员选项卡创建了这段代码,然后选择了“记录宏”。最初它工作得很好,但是当我向客户展示我的工作簿时我开始遇到问题,并且他们已经打开了其他 Excel 文件。现在,有时,当我只打开一个包含此宏的 Excel 文件时,我会收到以下错误。 当我打开文件时,我得到“运行时错误:'1004':对象“应用程序”的方法“宽度”失败”。

我正在使用 Excel 2016。 我认为如果首先选择文件或首先将文件带到前台,则可以解决问题,但我不知道该怎么做(还),而且我整个星期都在试图找出/找到解决方案。

感谢您抽出宝贵时间查看此内容。

根据此处发现的一些类似问题,我尝试将这行代码更改为:

Application.Width = 677.25

到:

Application.ThisWorkbook.Width = 677.25

它会出错。 (运行时错误'438':对象不支持该属性或方法)

代码/宏位于“ThisWorkbook”文件中(在 VBAProject 下,在 excel 对象下)。

Private Sub Workbook_Open()
    Application.Width = 677.25
    Application.Height = 663
    ActiveWindow.DisplayHeadings = False
    Application.DisplayFormulaBar = False
    Application.Width = 641.25
    Application.Height = 468
    Sheets("Watch").Select
End Sub

此代码的目标是调整文件打开时的显示大小,并确保工作表“Watch”在视图中。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    在使用Application.Width 或Application.Height 之前添加Application.WindowState = xlNormal。

    如果 Excel 应用程序窗口最大化,您将无法修改它的大小。

    如果您的 Excel 已最小化并且以下情况为真:Application.WindowState = xlMinimized,则设置宽度或高度不会导致错误,但即使您稍后手动更改显示,它也不会对窗口的大小产生任何影响最小化到正常。

    【讨论】:

    • 很抱歉迟迟没有回复您,我今天早上测试了几次,结果如我所愿。杰出的。谢谢Ryszard!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多