对于不同的文件版本

时间:2018-03-01 17:03:38

标签: excel-vba vba excel

我有一个ASPX页面生成的Excel文件,该页面在PROTECTED VIEW中打开。我希望编写一些Excel 2013 VBA来格式化Excel 97文件并保存。

Windows("DS – Incidents and Linked Problems.xls").Activate
Application.ActiveProtectedViewWindow.Edit

给出错误9下标超出范围。
理想情况下,我希望在文件打开时访问此文件,因为文件和浏览器版本已设置,并且很难更改。

编辑: 为了帮助我了解我发生了什么:

Debug.Print Workbooks.Count  
For Each w In Workbooks  
    Debug.Print w.Name  
Next  

给予

  

1
  Book1.xlsm

然后我在第二个文件上使用了Application.ActiveProtectedViewWindow.Edit并运行了返回的相同代码:

  

2
  Book1.xlsm
  DS - 事件和链接的问题.xls

1 个答案:

答案 0 :(得分:0)

我刚刚找到了ProtectedViewWindow Object (Excel),并使用找到的信息提出了:

If Application.ProtectedViewWindows.Count > 0 Then
    For pvwi = 1 To Application.ProtectedViewWindows.Count
        If Application.ProtectedViewWindows(pvwi).SourceName = "DS – Incidents and Linked Problems.xls" Then
               Application.ProtectedViewWindows(pvwi).Activate
        End If
        DoEvents
    Next
End If
Application.ActiveProtectedViewWindow.Edit