使用Excel VBA修改另一个工作簿中的.zoom属性

时间:2016-12-16 12:27:12

标签: excel vba excel-vba zoom

我正在编写一个复杂的VBA应用程序,它从一个工作簿导入数据,在导入时转换数据。作为此导入过程的一部分,进行计算以获取某个单元格的.text值(并且不能将其更改为.value),但这意味着如果缩小了源工作簿,则导入# ####### 值,因为它是显示的内容。

我正在尝试将源工作簿的活动表中的.zoom设置修改为100%缩放。使用的代码示例如下。

Dim SourcePath as String    
Dim SourceWorkbook as Object

FilePath = Application.GetOpenFilename 'Opens dialogue for user to select source
    If FilePath <> "" Then 'Checks that the filepath is completed
       SourcePath = FilePath 'Stores the filepath for source
    End If

Set SourceWorkbook = Workbooks.Open(SourcePath)

SourceWorkbook.ActiveWorksheet.Zoom = 100

我收到运行时错误91:对象变量或者没有设置块变量错误,所以我假设这里的逻辑很差。

有人可以提出一种方法来完成这项工作吗?感谢您的期待。

2 个答案:

答案 0 :(得分:1)

工作表上没有doctype.getPublicId()属性,我认为您需要更改窗口的zoom属性!

Setting all Excel sheets at a defined zoom level

答案 1 :(得分:1)

您可以使用以下代码

    Sheets("Sheet Name").Select
    ActiveWindow.Zoom = 30 ' Zoom Set to 30%