保存EXCEL文档时自动以某一单元格内的内容命名并自动保存在指定的文件夹

office2003 保存EXCEL时自动以某一单元格内的内容命名并自动保存在指定的文件夹(如果文件夹不存在,以"B1”内容新建文夹)文件名:"字符"+"A1"+"日期时间"

请给个详细的方法,如果现有百度中的方法是正确的请不要再重复,因为在本人机器上无法实现(请问是为什么)
现在能在百度中搜索到的相关本提问的都试过了
Email至[email protected]索取文档样本

[email protected]

事实证明,在beforesave事件中运行保存代码,会造出死循环,因此,用beforesave事件做另存为代码是行不通的,建议先录制一个宏(录制前设定快捷键,如Ctrl +z),然后将下面代码放到你所录制的宏里面:

Sub 另存为()
On Error Resume Next
Dim fs, f, fc, f1, s, t
t = 0
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("e:\")
Set fc = f.SubFolders
For Each f1 In fc
If f1.Name = "files" Then
t = 1
Exit For
End If
Next f1
If t = 0 Then MkDir ("e:\files")
Set s = fs.getfile("E:\files\" & [C2] & ".xls") '在e:\files文件夹中查找你的文件
If s <> "" Then
MsgBox "同名文件已存在,文件未保存!"
Exit Sub
Else:
ChDir "E:\files"
ActiveWorkbook.SaveAs Filename:="E:\files\" & [C2] & ".xls", FileFormat:=xlNormal
End If
End Sub
如需将文件另存为,则按 Ctrl +z
直接按保存命令,则在原位置保存原文件。追问

能否使用ECXCEL打印事件,在将表格打印的同时 以A1内的内容生成文件夹,A2内的内容命名文件并保存在A1文件夹中
在生成文件夹时先判断文件夹是否存在,如果存在就直接保存,没有就新建。文件名采用(“字符”+A2+日期+时间),日期用“月-日”4位,时间用“时分秒”6位。
如果不能用打印事件,用其它方法也行,只要能在打印同的时保存文件
请给出详细代码,谢谢!!

追答

下面代码是打印事件,打印前进行另存为,可行:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error Resume Next
Dim fs, f, fc, f1
t = 0
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("e:\")
Set fc = f.SubFolders
For Each f1 In fc
If f1.Name = "files" Then
t = 1
Exit For
End If
Next f1
If t = 0 Then MkDir ("e:\files")
Set s = fs.getfile("E:\files\" & "检验单" & [C2] & ".xls") '在e:\files文件夹中查找你的文件
If s "" Then
MsgBox ActiveWorkbook.Name & "这个文件已存在!"
Exit Sub
Else:
ChDir "E:\files"
ActiveWorkbook.SaveAs Filename:="E:\files\" & "检验单" & [C2] & ".xls", FileFormat:=xlNormal
End If
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-17
不知道百度上哪些方法是你重复了的。无法做答。
有一点可以肯定的是,用VBA来完成比较好
要不你就直接另存为你想要的。