2016-04-01 46 views
1

我在Excel2010中編寫了以下宏,用於將操作按鈕保存爲共享驅動器上的密碼保護文件。用於保存密碼保護文件的宏

Private Sub Report_Click() 

Sheets("sheetname").SaveAs Filename:="\\shared_folder_path\master" & Sheets("sheetname").Range("A2"), _ 
          FileFormat:=52, _ 
          Password:="password", _ 
          WriteResPassword:="password", _ 
          ReadOnlyRecommended:=False, _ 
          CreateBackup:=False 

End Sub 

的問題是,我得到一個運行時錯誤「1004」

+0

我永遠無法理解爲什麼知道Range(「A2」)中的內容並不重要。我在猜測它是一個日期,因此它包含諸如正斜槓之類的字符,這些字符在文件名中是非法的或混淆目標文件夾結構。如果你在A2中有一個日期,並且格式化了單元格,以便它可以作爲文件名的一部分使用,則使用'.Range(「A2」).Text'。當然,如果是這樣的話,你會看到一個很大的[錯誤消息彈出窗口](http://i.stack.imgur.com/vBN8f.png)。 – Jeeped

回答

0

我相信這是與你的FileName路徑。

我測試了它,只是使用了一個鏈接到我的桌面的路徑,它保存得很好。嘗試使用到桌面的路徑替換路徑的相同測試。

您需要將計算機使用的分配驅動器號添加到網絡文件夾路徑中。

呈現相同的代碼的更清潔的方式下面是與

Private Sub Report_Click() 
     Sheets("Sheet1").SaveAs _ 
      Filename:="C:\Users\user1\Desktop\" & Sheets("Sheet1").Range("A2"), _ 
      FileFormat:=52, _ 
      Password:="password", _ 
      WriteResPassword:="password", _ 
      ReadOnlyRecommended:=False, _ 
      CreateBackup:=False 
End Sub 

也有一看這How to programmatically save a file to a network drive in Excel爲一個基本的例子。

+0

事實上,這是一個與路徑有關的問題:單元格A2包含一個:導致路徑無效的問題。刪除:解決了問題。 –