2017-11-22 16 views
1

VBAを使用してローカルのxlsmファイルをSharePointオンラインにアップロードしようとしています。ファイルは、ユーザーがファイルを保存した後にSharePointに自動的にアップロードされます。 概念は、ユーザーがxlsmファイルを保存した後、コピーされたファイルを含む新しいフォルダを作成し、そのフォルダ内のコピーされたファイルをSharePointにアップロードします。アップロード後、フォルダは削除されます。VBA - ランタイムエラー1004

しかし、私は私が考えられる理由をご確認くださいによる

ランタイムエラー1004

にフォルダにファイルを保存することができませんよ、ファイル名/パスは、フォルダを存在しています正常に作成されました。

ファイルが別のプログラムで使用されていないため、Excelのみがファイルを実行します。

このフォルダは新しく作成されたもので、空のフォルダであり、同じ名前のファイルは含まれていません。

enter image description here

私はすべてのパスをチェックしなかったし、彼らはすべて正しいです。

これは、すべてのヘルプ私のコード

Private Sub Workbook_AfterSave(ByVal Success As Boolean) 

Dim UploadToSharepoint As Boolean 

Dim SharePointLib As String 
Dim myPath As String 
Dim folderPath As String 
Dim objNet As Object 
Dim FS As Object 
Dim copyPath As String 
Dim copyFilePath As String 

folderPath = Application.ActiveWorkbook.path 
myPath = Application.ActiveWorkbook.FullName 
SharePointLib = "https://company.com/folder/subfoler" 
copyPath = folderPath + "\copyPath" 
MsgBox "This is the folderPath = " & folderPath & vbNewLine & "This is the filepath = " & myPath & vbNewLine & "The copyPath is = " & copyPath 

If Not FolderExists(copyPath) Then 
    FolderCreate (copyPath) 
End If 

SharePointLib = SharePointLib & FileNameWithExt(myPath) 
ThisWorkbook.SaveCopyAs (copyPath) 

Exit Sub 

loadFailed: 
UploadToSharepoint = False 

End Sub 

であるとの提案が高く評価されています。ありがとうございました。

+0

を:\ユーザーはJian.Chen2 \デスクトップ\ Copypath'を\、その名前は、あなたのディレクトリによってすでに使用されています作成した。 – YowE3K

答えて

4

copyPathはフォルダだけですが、SaveCopyAsの引数はファイル名の完全なパスにする必要があります。

この試してみてください:あなたは `Cの名前を使用してファイルを保存しようとしている ThisWorkbook.SaveCopyAs copyPath & "\filename.xlsx"

+2

'filename.xlsm'(マクロが有効なブックであるため)でなければなりませんが、それ以外はうまく動作するはずです。 :) – YowE3K

関連する問題