VBA中的excel .open方法参数

时间:2018-11-06 10:20:51

标签: excel vba

在VBA for Excel中将参数分配给.open methon时遇到问题。 下面的代码是我所拥有的,我所需要的只是将指定的工作簿打开为只读且不可编辑。

请问如何设置参数才能正常工作!

Dim source As Workbook
Dim projekt, BOM As String
Dim count As Integer
Dim LastBOM As Long

LastBOM = Ark1.Range("I" & Rows.count).End(xlUp).Row

For count = 16 To LastBOM
BOM = Range("I" & count) 'List of Excel workbooks in active workbook
projekt = "[Path to file on drive]\" & BOM & ".xlsx"

Workbooks.Open (projekt) '<= This works and open above specified workbook 
                         '   but should be read only and not editable

Workbooks.Open(projekt,ReadOnly:=True,Editable:=False) '<= None of these work
Workbooks.Open(projekt,,True,,,,,,,False,,,,,)
Workbooks.Open(projekt,True,False)
Workbooks.Open("projekt",True,False)
Workbooks.Open(Filename:="projekt",True,False)
Workbooks.Open(Filename:=projekt,ReadOnly:=True,Editable:=False)
Workbooks.Open(Filename:="projekt",ReadOnly:=True,Editable:=False)
Next count

1 个答案:

答案 0 :(得分:1)

阅读文档始终是一个好主意:Workbooks.Open Method (Excel)并使用ReadOnly参数:

Workbooks.Open FileName:=projekt, ReadOnly:=True, Editable:=False

如果不需要返回值,也可以删除括号。或使用括号将工作簿返回到变量中:

Dim OpenedWorkbook As Workbook
Set OpenedWorkbook = Workbooks.Open(FileName:=projekt, ReadOnly:=True, Editable:=False)

我建议使用最后一个选项,因为这样您便可以轻松访问打开的工作簿,例如,使用:

OpenedWorkbook.Worksheets("Sheet1").Range("A1")