VBA将Excel文件上载到Sharepoint。运行时错误';1004';

VBA将Excel文件上载到Sharepoint。运行时错误';1004';,vba,excel,sharepoint,runtime-error,Vba,Excel,Sharepoint,Runtime Error,大家好,我希望你们能帮忙。我有一段代码,它所做的是,如果单元格A2更改为“在此处输入您的国家/地区”以外的任何内容,它将查找工作簿中的所有“在此处输入您的国家/地区”,并将其替换为A2中的新值。这部分很好用。我遇到的问题是,一旦单元格发生更改,我还希望工作簿保存到Sharepoint环境中。但是在下面的一行中,我不断得到运行时错误“1004” SaveAs Filename:="http://teamspace.merck.com/sites/emea_efpia/Shared%20Docume

大家好,我希望你们能帮忙。我有一段代码,它所做的是,如果单元格A2更改为“在此处输入您的国家/地区”以外的任何内容,它将查找工作簿中的所有“在此处输入您的国家/地区”,并将其替换为A2中的新值。这部分很好用。我遇到的问题是,一旦单元格发生更改,我还希望工作簿保存到Sharepoint环境中。但是在下面的一行中,我不断得到运行时错误“1004”

SaveAs Filename:="http://teamspace.merck.com/sites/emea_efpia/Shared%20Documents/Forms/AllItems.aspx?RootFolder=%2Fsites%2Femea%5Fefpia%2FShared%20Documents%2FEFPIA%20Regional%20Reporting%20Team%2FDispute%20Management%2FDispute%20reports%20per%20market%2FGlobal%20Reporting&FolderCTID=0x012000FA7F4E9565D6274DAF9E871EA008299B&View=%7BB6EF0397-E24C-49DF-92EF-CB7015B60539"
如果我将Sharepoint地址替换为C驱动器或本地地址,它将非常有效。我错过什么了吗?是否可以修改我的代码以允许将工作簿保存到Sharepoint?下面是我的代码,一如既往,非常感谢您的帮助

代码

Private子工作表\u更改(ByVal目标作为范围)
此文件=范围(“A2”).值
暗淡单元格作为范围
将sht变暗为工作表
Dim-fnd作为变体
Dim-rplc作为变体
fnd=“在此处输入您的国家”
rplc=工作表(“SearchCasesResults”).范围(“A2”).值
对于ActiveWorkbook.工作表中的每个sht
sht.Cells.Replace what:=fnd,Replacement:=rplc_
LookAt:=xlPart,SearchOrder:=xlByRows,MatchCase:=False_
SearchFormat:=False,ReplaceFormat:=False
下一步
对于范围内的每个单元格(“A2”)
如果cell.Value“在此处输入您的国家”,则
另存为文件名:="http://teamspace.merck.com/sites/emea_efpia/Shared%20Documents/Forms/AllItems.aspx?RootFolder=%2Fsites%2Femea%5Fefpia%2FShared%20Documents%2FEFPIA%20Regional%20Reporting%20Team%2FDispute%20Management%2FDispute%20reports%20per%20market%2FGlobal%20Reporting&FolderCTID=0x012000FA7F4E9565D6274DAF9E871EA008299B&View=%7BB6EF0397-E24C-49DF-92EF-CB7015B60539"
如果结束
下一个细胞
工作表(“SearchCasesResults”)。激活
活动工作簿。关闭
端接头
按要求重新编码

    Private Sub Worksheet_Change(ByVal Target As Range)

  ThisFile = Range("A2").Value
  Dim cell As Range
  Dim sht As Worksheet
  Dim fnd As Variant
  Dim rplc As Variant

  fnd = "Enter Your Country Here"
  rplc = Worksheets("SearchCasesResults").Range("A2").Value
  For Each sht In ActiveWorkbook.Worksheets
  sht.Cells.Replace what:=fnd, Replacement:=rplc, _
  LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
  SearchFormat:=False, ReplaceFormat:=False
  Next sht
  For Each cell In Range("A2")
  If cell.Value <> "Enter Your Country Here" Then
  Application.SaveAs Filename:="\\teamspace.merck.com\sites\emea_efpia\Shared%20Documents\EFPIA%20Regional%20Reporting%20Team%2FDispute%20Management\Dispute%20reports%20per%20market\Global%20Reporting\["C:\Users\CONNELLP\Desktop\Claire Macro\CRO Countries\" & ThisFile & Format(Now(), "DD-MMM-YYYY hh mm AMPM").xlsm]", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
  End If
  Next cell
  Worksheets("SearchCasesResults").Activate
  ActiveWorkbook.Close

End Sub
Private子工作表\u更改(ByVal目标作为范围)
此文件=范围(“A2”).值
暗淡单元格作为范围
将sht变暗为工作表
Dim-fnd作为变体
Dim-rplc作为变体
fnd=“在此处输入您的国家”
rplc=工作表(“SearchCasesResults”).范围(“A2”).值
对于ActiveWorkbook.工作表中的每个sht
sht.Cells.Replace what:=fnd,Replacement:=rplc_
LookAt:=xlPart,SearchOrder:=xlByRows,MatchCase:=False_
SearchFormat:=False,ReplaceFormat:=False
下一步
对于范围内的每个单元格(“A2”)
如果cell.Value“在此处输入您的国家”,则
Application.SaveAs文件名:=“\\teamspace.merck.com\sites\emea\u efpia\Shared%20Documents\efpia%20Regional%20Reporting%20Team%2fDisference%20Management\Disference%20reports%20per%20market\Global%20Reporting\[“C:\Users\CONNELLP\Desktop\Claire Macro\CRO Countries\”&此文件和格式(现在(),“DD-MMM-YYYY hh-mm-AMPM”).xlsm],FileFormat:=xlOpenXMLWorkbookMacroEnabled,CreateBackup:=False
如果结束
下一个细胞
工作表(“SearchCasesResults”)。激活
活动工作簿。关闭
端接头

您正试图保存到页面,而不是文件夹。请尝试将“另存为”行更改为:

Application.SaveAs Filename:="//teamspace.merck.com/sites/emea_efpia/Shared%20Documents/EFPIA%20Regional%20Reporting%20Team%2FDispute%20Management/Dispute%20reports%20per%20market/Global%20Reporting/[FILENAME.xlsx]" _
 , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

您试图保存到页面,而不是文件夹。请尝试将“另存为”行更改为:

Application.SaveAs Filename:="//teamspace.merck.com/sites/emea_efpia/Shared%20Documents/EFPIA%20Regional%20Reporting%20Team%2FDispute%20Management/Dispute%20reports%20per%20market/Global%20Reporting/[FILENAME.xlsx]" _
 , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

您可能需要将所有的
/
更改为
\
alsoHi CLR:感谢您花时间回复,我尝试了您提供的代码,但现在又出现了一个错误。运行时错误'438'我做错了什么。我还按照Macro Man的建议将/to/更改为/I,但我收到了相同的错误。您能用您现在的编码更新问题吗?CLR我已将新编码添加到问题中。请注意,我已从您提供给我的代码片段中删除了
\u
/[FILENAME.xlsx]“\uu,FileFormat:
,因为如果
\u
保持不变,则该行代码将变为红色。再次感谢您对Macro mans建议的帮助,并将
\替换为
/,但您已将
[FILENAME.xlsx]
替换为实际的文件名(和扩展名)是吗?您可能需要将所有
/
更改为
\
alsoHi CLR:谢谢您花时间回复,我尝试了你提供的代码,但现在又出现了一个错误。运行时错误'438'我做错了什么。我还按照Macro Man的建议将/to/更改为/I,但我收到了相同的错误。您能用您现在的编码更新问题吗?CLR我已将新编码添加到问题中。请注意,我已从您提供给我的代码片段中删除了
\u
/[FILENAME.xlsx]“\uu,FileFormat:
,因为如果
\u
保持不变,则该行代码将变为红色。再次感谢您对Macro mans建议的帮助,并将
\替换为
/,但您已将
[FILENAME.xlsx]
替换为实际的文件名(和扩展名)是吗?