Как переместить файл из одной папки SharePoint в другую - PullRequest
0 голосов
/ 16 марта 2020

Мне нужно переместить файл из одной папки SharePoint в другую папку после того, как я нажму кнопку подтверждения.

Я получаю сообщение об ошибке:

"user defined type not defined"
Private Sub Approve_Click()
  Dim sDocPath As String
  Dim sFileName As String
  Dim sTargetPath As String
  Dim sSourcePath As String
  Dim sDriveLetter As String
  Dim fso As FileSystemObject
  Dim net As WshNetwork

  sDriveLetter = "S:"
  sFileName = "WorkBook.xlsm"

  Set fso = New FileSystemObject & CreateObject("Scripting.FileSystemObject")
  sDocPath = ThisWorkbook.path
  ‘sDocPath = ConvertPath(sDocPath)

  Set net = New WshNetwork & CreateObject("WScript.Network")
  Debug.Print "Path to map: " & sDocPath
  net.MapNetworkDrive sDriveLetter, sDocPath

  sSourcePath = sDriveLetter & "\https:\\xxxxxOrder%20Form\" & sFileName
  Debug.Print "Source: " & sSourcePath

  sTargetPath = sDriveLetter "\https:\\xxxxxxxxxxxxxxxxxxx\" & sFileName
  Debug.Print "Target: " & sTargetPath

  fso.CopyFile sSourcePath, sTargetPath, True

  net.RemoveNetworkDrive sDriveLetter

  Set net = Nothing
  Set fso = Nothing

End Sub

1 Ответ

0 голосов
/ 16 марта 2020

Вам также необходимо добавить ссылку «Среда выполнения сценариев Microsoft» :

VBA Editor ›Инструменты› Ссылки enter image description here
Подробнее см .: https://trumpexcel.com/vba-filesystemobject/

Этот метод называется раннее связывание , и вы можете использовать его, как показано ниже (включая интеллигентный смысл ):

Dim fso As FileSystemObject
Set fso = New FileSystemObject 

Или вы используете позднюю привязку (без задания ссылки) и без смысла intelli, тогда вам нужно использовать код, как показано ниже:

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

но все же выглядит как смесь обоих, которые не могут работать:

Set fso = New FileSystemObject & CreateObject("Scripting.FileSystemObject")

То же самое для Set net = New WshNetwork & CreateObject("WScript.Network"), который должен использовать ссылку "Windows Сценарий Host Object Model " и:

Dim net As WshNetwork
Set net = New WshNetwork

или позднее связывание и:

Dim net As Object
Set net = CreateObject("WScript.Network")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...