2016-10-31 5 views
1

私は少し複雑なマクロを実行するファイルを持っています。最初の手順でファイルを別の名前で保存してマクロを再利用することができます。私が抱えている問題は、ファイルの名前をセルの値に保存することですが、ファイルの名前の前後にスペースを追加することです。それを修正することはできますか?VBA、範囲からExcelの文書を保存しますが、余分なスペースを追加します

Sub SaveWorkbook() 

'Pick range where file name is stored 
Saveasname = Range("L2").Value 

'Save the workbook 
ActiveWorkbook.SaveAs "I:\MyFilePath\ " & Saveasname & " .xlsm" 

End Sub 

また、私はsaveasname周りの余分なスペースを削除しようとしたことを言及する必要がありますが、それらは自動的に戻って来るのいずれかまたはマクロが実行されません。 :/ 提案が役に立ちます。


更新:お返事ありがとうございました!私はそれをどのように台無しにしたかを知った。私はファイルに必要な名前に別のフィールドを追加しました。そのフィールドには不正な文字(コロン)が付いていたので、修正しました。ご協力ありがとうございました!

+0

'saveasname'を'&trim(saveasname)& 'に変更してみてください。または、宣言部分 'Saveasname = Trim(Range(" L2 ")。Value)' – BruceWayne

+0

をトリムするので、もう別の問題が発生しています。私はそれが以前に働くようになったにもかかわらず、今は全く働いていません。 – Lui

+0

「今は全く働いていない」とはどういう意味ですか? 'SaveWorkbook'を呼び出すとすぐにエラーになりますか?それとも、最初の行でクラッシュしますか?または2行目?エラーメッセージが表示されますか? 'L2'にいくつかの値が含まれていて他の値は含まれていないときに動作しますか? – YowE3K

答えて

2

FileName文字列から、このスペースを削除すると、動作するはずです;) "saveasname周りのスペースを削除する"

Sub SaveWorkbook() 

'Pick range where file name is stored 
Saveasname = Range("L2").Value 

'Save the workbook 
ActiveWorkbook.SaveAs "I:\MyFilePath\" & Saveasname & ".xlsm" 

End Sub 
+0

うわー良いキャッチ – BruceWayne

+0

ありがとう、これは働いています。私はあなたの答えを受け入れるようにマーキングしようとしましたが、私がメッセージをポップアップすると、エラーが発生したというメッセージが表示されます。 :\ – Lui

2

は、この変更を意味しないでください。これに

ActiveWorkbook.SaveAs "I:\MyFilePath\ " & Saveasname & " .xlsm" 

ActiveWorkbook.SaveAs "I:\MyFilePath\ " &Saveasname& " .xlsm" 

これを次のように変更する必要があります。

ActiveWorkbook.SaveAs "I:\MyFilePath\" & Saveasname & ".xlsm" 

これは期待どおりに動作します。

+0

ありがとうございました!これはリマックが提案したのと同じことですが、あなたはそれをもっとはっきりと綴り、本当に助けてくれました。ありがとう! – Lui

関連する問題