2014-04-14 64 views
1

進出口新的文件,但是當我運行它,它僅保存最後一部分(&日(現在)&「 - 」 &月(現在)&「 - 」 &年(Now))的名字。不考慮de串「Asesor」。我不知道我失去了什麼部分:保存在使用下面的代碼使用宏VBA

Sub SaveFile() 

Dim Asesor As String 
Asesor = Range("B3").Value 

Dim DestFile 
DestFile = "C:\Users\ST\" 

Application.ScreenUpdating = False 
Workbooks("Grillas_QA.xlsm").Activate 
ActiveSheet.Range("A1:K51").Select 
Selection.Copy 

Workbooks.Add 

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 
    SkipBlanks:=False, Transpose:=False 
Application.CutCopyMode = False 
ActiveWindow.DisplayGridlines = False 


Application.DisplayAlerts = False 

這裏是我保存文件的地方。

ActiveWorkbook.SaveAs Filename:=DestFile & Asesor & " " & Day(Now) & "-" & Month(Now) & "-" & Year(Now), _ 
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ 
ReadOnlyRecommended:=False, CreateBackup:=False 

Thnx提前尋求幫助。

+0

嘗試改變'Asesor = Range(「B3」)。Value' to something like this:'Asesor = ThisWorkbook.Worksheets(「Sheet1」)。Range(「B3」)。Value'。這也許是有趣的:[如何避免使用Select/Active語句](http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select) –

+1

你想把它作爲一個答案我可以給你+1投 – Pietro

回答

1

由於從評論跟進,下一行

Asesor = Range("B3").Value 

應該改成這樣的:

Asesor = ThisWorkbook.Worksheets("Sheet1").Range("B3").Value 

另外,作爲一個建議,我建議你閱讀這篇文章:How to avoid using Select/Active statements

+1

我也加入到我的最愛避免選擇的問題。 Thnx也是這樣! – Pietro

+0

通常,使用'Select/Active'是導致不同運行時錯誤的主要原因。 –