2012-02-07 61 views
2

我試圖複製位於一個文件路徑的整個未打開的工作簿,將其重命名並將其保存到一個新目錄中......我遇到了重命名和保存問題,這裏是我的代碼迄今:在excel中複製和重命名未打開的工作簿

Private Sub new_file_Click() 
Dim ActBook As Workbook, NewFile As String 
Dim ToolFilePath As String, DestFilePath As String, NewToolName As String 
NewToolName = InputBox("Enter the Tool Name.") 

MsgBox (Tools_ListBox.Value) 
ToolFilePath = GetToolPath(Tools_ListBox.Value) 
ToolFilePath = GetPath & ToolFilePath 

DestFilePath = GetPath & GetDestPath(Tools_ListBox.Value) & NewToolName & ".xlsm" 

Set ActBook = Workbooks.Add(ToolFilePath) 
ActBook.SaveAs DestFilePath 
ActBook.Close True 

,我想複製坐落在ToolFilePath路徑和位置我想它重新命名爲是DestFilePath,其中包括Excel的.XLSM擴展名的文件。

我哪裏錯了?

感謝

+0

在SaveAs下,需要爲Excel 2007及更高版本添加的文件類型。 – Jon49 2012-02-07 19:38:47

+0

文件路徑,DestFilePath有一個.xlsm擴展名 – thebiglebowski11 2012-02-07 19:56:56

+0

你需要的是這樣的'wkb.SaveAs sFileName,XlFileFormat.xlTemplate',當然你的將是一個不同的文件格式,但它應該會拋出一個錯誤,如果你不'沒有指定XlFileFormat只是在Excel 2007及更高版本中添加文件格式是不夠的。我正在使用的計算機僅適用於Excel 2003,否則我會爲您提供正確的文件類型。 – Jon49 2012-02-07 20:07:58

回答

5

爲什麼不直接使用:

FileCopy(ToolFilePath,DestFilePath) 

無需打開它。

+0

好了,所以將這項工作,如果我有例如 ToolFilePath = d:\ mytool \ thetool.xlsm DestFilePath = d:\ copytool \ newcopy.xlsm 或做我需要做一個新的文件,並且路徑只是一個文件夾位置? – thebiglebowski11 2012-02-07 20:32:43

+1

它需要兩條完整路徑 – 2012-02-07 20:57:47

+0

我已將它完全複製,並且正在觀察我的兩個目標變量......一切看起來都是正確的,但我收到的文件不存在錯誤。 – thebiglebowski11 2012-02-07 21:21:32

2

如果您不希望保留原始文件,也可以使用NAME方法。

Name ToolFilePath As DestFilePath 
+0

+1 - 如果原始文件是被保存 – brettdj 2012-02-08 09:22:46

相關問題