保存EXCEL文档时自动以某一单元格内的内容命名并自动保存在指定的文件夹
office2003保存EXCEL时自动以某一单元格内的内容命名并自动保存在指定的文件夹(如果文件夹不存在,以"B1”内容新建文夹)文件名:"字符"+"A1"+"日期时间...
office2003 保存EXCEL时自动以某一单元格内的内容命名并自动保存在指定的文件夹(如果文件夹不存在,以"B1”内容新建文夹)文件名:"字符"+"A1"+"日期时间"
请给个详细的方法,如果现有百度中的方法是正确的请不要再重复,因为在本人机器上无法实现(请问是为什么)
现在能在百度中搜索到的相关本提问的都试过了
Email至panpei1@QQ.com索取文档样本 展开
请给个详细的方法,如果现有百度中的方法是正确的请不要再重复,因为在本人机器上无法实现(请问是为什么)
现在能在百度中搜索到的相关本提问的都试过了
Email至panpei1@QQ.com索取文档样本 展开
2个回答
展开全部
languanzeng@163.com
事实证明,在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
直接按保存命令,则在原位置保存原文件。
事实证明,在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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询