Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
要使用动态文件名保存到SharePoint的VBA宏_Vba_Excel_Sharepoint - Fatal编程技术网

要使用动态文件名保存到SharePoint的VBA宏

要使用动态文件名保存到SharePoint的VBA宏,vba,excel,sharepoint,Vba,Excel,Sharepoint,我有一个excel工作表,我想通过宏保存到SharePoint。我对它进行了排序,但问题是每个月文件名都会不同,我不想每次都更改宏(即filenameSeptember、filenameOctober等) 我使用的是一个非常基本的宏,因为我不太擅长编写它们,它可以工作,但它使用了硬编码的旧文件名: Sub savetest() ActiveWorkbook.SaveAs Filename:= _ "http://SharePointdirectory/filenameSeptember

我有一个excel工作表,我想通过宏保存到SharePoint。我对它进行了排序,但问题是每个月文件名都会不同,我不想每次都更改宏(即filenameSeptember、filenameOctober等)

我使用的是一个非常基本的宏,因为我不太擅长编写它们,它可以工作,但它使用了硬编码的旧文件名:

Sub savetest()

ActiveWorkbook.SaveAs Filename:= _
    "http://SharePointdirectory/filenameSeptember.xlsm" _
    , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub
上下文:每个月我都会使用新数据更新此文件,并使用新文件名保存它,将其发送给用户进行验证-我希望此用户能够通过自动使用我调用的文件名的宏直接上载到SP目录

我希望这是有意义的,并提前表示感谢。

这将对您有用

Sub savetest()

ThisWorkbook.SaveAs Filename:= _
    "\\SharepointDirectory\" & ThisWorkbook.Name & MonthName(Month(Date), False) _
    , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

我最终使用单元格指定文件名并存储路径,这似乎是可行的:

Public Sub SavetoSP()
ThisFile = Range("D1").Value
ThisPath = Range("J1").Value

ActiveWorkbook.SaveAs Filename:=ThisPath & ThisFile & ".xlsm"
End Sub

我相信问题和答案对于自动化办公室工作非常有用。提供在SharePoint文档库中存储信息的通用功能

注意:用户必须将SharePoint库URL复制到特定工作表

A.我的程序模板

'========================================
'SAVE THIS FILE TO A SHAREPOINT
'========================================

Sub Push2SharePoint()

    ' define variables
    Dim SharePointPath As Variant
    Dim FileAsNamed As Variant
    ' retrieve SharePoint path indicated by the user inside Excel Sheet named "Select" on cell B33
    SharePointPath = ThisWorkbook.Sheets("Select").Range("B33").Text
    ' provide some error message if it's not populated
    On Error GoTo NoStorageSelected
    If Not SharePointPath <> False Then
        'Displaying a message if file not choosedn in the above step
        MsgBox "No storage space was selected.", vbExclamation, "Sorry!"
        'And existing from the procedure
        Exit Sub
    Else
        'Create the new file name, note we place data format in ISO 8601 format in front of the file name
        FileAsNamed = SharePointPath & Year(Date) & "-" & Month(Date) & "-" & Day(Date) & "_" & ThisWorkbook.Name

        ' save the copy
        ThisWorkbook.SaveAs FileName:=FileAsNamed, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False


    End If

Exit Sub
' Error Management
NoStorageSelected:
           MsgBox "Error: Excel can not reach SharePoint Folder Storage location" & vbCrLf & _
           "Possible reasons are: Storage location was not defined in the Worksheet 'Select' cell B33 or " & vbCrLf & _
           "Not having sufficient previledges to access SharePoint location " & vbCrLf & _
           "Make sure to add forward slash after SharePoint Document Library"
           Exit Sub

End Sub
'========================================
'将此文件保存到SHAREPOINT
'========================================
子Push2SharePoint()
'定义变量
Dim SharePointPath作为变量
Dim文件名为Variant
'检索用户在单元格B33上名为“Select”的Excel工作表中指示的SharePoint路径
SharePointPath=ThisWorkbook.Sheets(“选择”).Range(“B33”).Text
'如果未填充,请提供一些错误消息
关于错误转到NoStorageSelected
如果不是SharePointPath False,则
'如果在上述步骤中未选择文件n,则显示消息
MsgBox“未选择任何存储空间”,请感叹“对不起!”
"从程序上存在,
出口接头
其他的
'创建新文件名,请注意,我们将ISO 8601格式的数据格式放在文件名前面
FileAsNamed=SharePointPath&Year(Date)&“-”和Month(Date)&“-”和Day(Date)&“u“&ThisWorkbook.Name
“保存副本
ThisWorkbook.SaveAs文件名:=FileAsName,文件格式:=xlOpenXMLWorkbookMacroEnabled,CreateBackup:=False
如果结束
出口接头
“错误管理
选出的预言家:
MsgBox“错误:Excel无法访问SharePoint文件夹存储位置”&vbCrLf&_
“可能的原因是:工作表'Select'单元格B33中未定义存储位置或”&vbCrLf&_
“没有足够的权限访问SharePoint位置”&vbCrLf&_
“确保在SharePoint文档库之后添加正斜杠”
出口接头
端接头
B.参考文件


您忘记了“.xlsm”。由于旧的宏起作用,我会使用'ht tp://SharePointdirectory/filename'而不是sharepoint目录和当前工作簿的名称。抱歉,但不同意,您不需要“xlsm”部分,Excel会找到答案的,因为我们已经指出了文件格式运行后在SP中显示的文件是一个包含大量内容的.zip文件,而不是一个“.xlsm”文件:(奇怪,当我添加&“.xlsm”时)它将其另存为filenameSeptember.xlsmmummer,但在SP文档列表中会显示一个Excel图标,并以Excel格式打开。@mattinwpg将文档文件夹中的任何.xlsm文件改为.zip;您现在可以像浏览任何zip文件一样浏览.xlsm文件-2007+Excel工作簿是一个.zip文件,只是扩展名不同。