Excel VBA – GetObject(),打开只读(已打开的文档)

我正在尝试使用Excel VBA打开另一个Excel文档来提取数据。
我希望能够打开并从其他用户已经打开的文档中提取数据。
我怎样才能GetObject函数打开只读参数的文件?

使用Workbooks.Open方法并指定ReadOnly设置为true的完整path名称:

  Workbooks.Open(FileName:="C:\Users\User\Desktop\excelworkbook.xlsm", ReadOnly:=True) 

假设工作簿已经打开,它将以只读方式打开。 从此只读工作簿中select所有单元格,将所有内容复制并粘贴到其他工作簿中。

这里是代码:

  'Hide Prompts and Screen Updating (so can rename workbooks without prompts) Application.DisplayAlerts = False Application.ScreenUpdating = False 'Create Two WorkBook Objects Dim Wb1 As Workbook, Wb2 As Workbook 'Create a new workbook to copy to Set Wb1 = Application.Workbooks.Add() Wb1.SaveAs ("WorkBookToCopyTo") 'Open the other workbook (will open as read-only because it's already open) Set Wb2 = Workbooks.Open(FileName:="C:\Users\User\Desktop\excelworkbook.xlsm", ReadOnly:=True) 'activate read-only workbook, select all cells, copy Wb2.Activate Wb2.Worksheets(1).Select Cells.Select Selection.Copy 'activate other workbook, select all cells, paste Wb1.Activate Wb1.Worksheets(1).Select Cells.Select ActiveSheet.Paste 'Show Prompts Again Application.DisplayAlerts = True Application.ScreenUpdating = True 

您可以使用以下代码激活只读工作簿:

 Workbooks.Open Filename:=file-path, ReadOnly:=True