我正在一个 SharePoint2016 excel 文件 (File1) 中编写 VBA 代码以实现任务自动化。部分任务是准备好另一个 SharePoint 中另一个 Excel 文件 (File2) 中的信息并将其复制到我的文件中。我不想向 File2 写入任何内容,只需阅读即可。
我可以在不打开文件的情况下执行此操作吗?如果是这样,我将如何引用它?
提前致谢!
我正在一个 SharePoint2016 excel 文件 (File1) 中编写 VBA 代码以实现任务自动化。部分任务是准备好另一个 SharePoint 中另一个 Excel 文件 (File2) 中的信息并将其复制到我的文件中。我不想向 File2 写入任何内容,只需阅读即可。
我可以在不打开文件的情况下执行此操作吗?如果是这样,我将如何引用它?
提前致谢!
我无法想象如何在不打开文件的情况下写入文件。无论如何,请尝试下面的示例代码,看看是否有帮助。
Sub OpenAndCloseWBFromSharePointFolder()
'If nobody has the file checked out
If Workbooks.CanCheckOut("http://excel-pc:43231/Shared Documents/ExcelList.xlsb") = True Then
Application.DisplayAlerts = False
'Open the file on the SharePoint server
Workbooks.Open Filename:="http://excel-pc:43231/Shared Documents/ExcelList.xlsb", UpdateLinks:=xlUpdateLinksNever
'Close the workbook
Workbooks("ExcelList.xlsb").Close
Application.DisplayAlerts = True
Else
Application.DisplayAlerts = False
'Open the File to check if you already have it checked out
Workbooks.Open Filename:="http://excel-pc:43231/Shared Documents/ExcelList.xlsb", UpdateLinks:=xlUpdateLinksNever
'See if doc can be checked in
If Application.Workbooks("ExcelList.xlsb").CanCheckIn Then
'Check In, Save and Close
Application.Workbooks("ExcelList.xlsb").CheckIn SaveChanges:=True, Comments:="Checked-In before Delete"
'Open the file again
Workbooks.Open Filename:="http://excel-pc:43231/Shared Documents/ExcelList.xlsb"
'Close the workbook
Workbooks("ExcelList.xlsb").Close
End If
End If
End Sub
Sub UpdateSpecificCells()
'If nobody has the file checked out
If Workbooks.CanCheckOut("http://excel-pc:43231/Shared Documents/ExcelList.xlsb") = True Then
Application.DisplayAlerts = False
'Open the file on the SharePoint server
Workbooks.Open Filename:="http://excel-pc:43231/Shared Documents/ExcelList.xlsb", UpdateLinks:=xlUpdateLinksNever
ActiveSheet.Cells(2, 7).Value = 100
ActiveSheet.Cells(3, 7).Value = 200
ActiveSheet.Cells(4, 7).Value = 300
'Close the workbook
Workbooks("ExcelList.xlsb").Save
Workbooks("ExcelList.xlsb").Close
End If
End Sub