Я работаю над автоматизацией выгрузки SharePoint и назначением пользовательских свойств документов в VBA. Чтобы загрузить книгу в SharePoint и назначить ей правильные свойства .ContantTypeProperties, я предложил следующий способ:
- Сохранение копии книги в SharePoint
- Открытие копии SharePoint
- Редактирование .ContentTypeProperties
- Перезапись копии SharePoint
Это работает без проблем на рабочих книгах без пароля. Однако при выполнении того же процесса с книгой, защищенной паролем, свойства .ContentTypeProperties не сохраняются должным образом после загрузки в SharePoint и возвращаются к значениям по умолчанию. Я попытался удалить пароль, а затем заново внедрить его перед повторной загрузкой, но похоже, что сохранение с паролем - это проблема.
Любые идеи о том, почему это так и как я могу обойти это? Из соображений безопасности я не могу загрузить эти файлы в SharePoint без пароля.
Sub onboard_upload()
Dim wbA As Workbook
Dim wbB As Workbook
Dim FY As String
Dim PP As String
Dim QTR As String
Dim fileName As String
Dim originFilePath As String
Dim destinationFilePath As String
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
Set wbA = ThisWorkbook
FY = Format(Cells(1, 2).Value, "00")
PP = Format(Cells(2, 2).Value, "00")
QTR = Cells(1, 5).Value
fileName = "Test File.xlsx"
'File I want to upload
originFilePath = "STRING REMOVED FOR POST" & fileName
'ShareDrive location
destinationFilePath = "STRING REMOVED FOR POST" & fileName
'Open file to be uploaded
Workbooks.Open originFilePath
Set wbB = ActiveWorkbook
'Save to SharePoint and close in order to access custom properties
With wbB
.SaveCopyAs fileName:=destinationFilePath
.Close
End With
'Open SharePoint copy
Workbooks.Open destinationFilePath
Set wbB = ActiveWorkbook
'Set custom properties, save, and close
With wbB
.ContentTypeProperties("Fiscal Year").Value = "FY" & FY
.ContentTypeProperties("Quarter").Value = "Q" & QTR
.SaveAs fileName:=destinationFilePath
.Close
End With
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub