Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Excel VBA在OneDrive上创建文本文件_Excel_Vba_Onedrive - Fatal编程技术网

从Excel VBA在OneDrive上创建文本文件

从Excel VBA在OneDrive上创建文本文件,excel,vba,onedrive,Excel,Vba,Onedrive,我需要用活动工作簿的名称创建一个文本文件,但扩展名为.txt。我使用以下代码: Public Sub textfile() Dim fso As Variant, ts As Variant Dim tempFileName As String Set fso = CreateObject("Scripting.FileSystemObject") tempFileName = ActiveWorkbook.FullName + ".txt"

我需要用活动工作簿的名称创建一个文本文件,但扩展名为.txt。我使用以下代码:

Public Sub textfile()
Dim fso As Variant, ts As Variant
Dim tempFileName As String
   Set fso = CreateObject("Scripting.FileSystemObject")
   tempFileName = ActiveWorkbook.FullName + ".txt"
   Debug.Print tempFileName
   Set ts = fso.CreateTextFile(tempFileName)
   ts.WriteLine "Hello"
   ts.Close
End Sub
使用本地文件,它可以完美地工作。但如果文件位于OneDrive上,则会给出错误52“错误的文件名或编号”。文件的路径为:

xxx-my.sharepoint.com/personal/yyy\u xxx\u onmicrosoft\u com/Documents/test.xlsx.txt


关于如何解决这个问题有什么想法吗?

文件系统对象比onedrive旧得多,它不了解其路径。但是,如果将onedrive文件夹同步到本地文件系统,例如:c:\users\name\onedrive。。。您可以改为使用此本地路径,它将同步回onedrive

使用onedrive api将文件上载到onedrive还有其他方法。但是,这些要复杂得多,需要一些身份验证知识()。
如果您能胜任,请查看此处:。

谢谢您的评论。与此同时,我发现像ActiveWorkbook.SaveAs Filename:=\tempFileName,FileFormat:=\xlOpenXMLWorkbookMacroEnabled,CreateBackup:=False这样的命令可以使用这些xxx-my.sharepoint.com路径访问OneDrive。但它会创建XLSX文件。遗憾的是,它们没有提供与CreateTextFile类似的功能。