Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1794|回复: 2

[已解决]新新手求助,导出新表另存为问题 ???

[复制链接]
发表于 2016-6-10 10:56 | 显示全部楼层 |阅读模式
本帖最后由 daxindianqi 于 2016-6-10 17:03 编辑

有段程序不会写,求助大家:在保有现有功能不变的情况下实现“另存为”时发现有相同文件名,显示WINDOWS标准的“另存为”窗口,在窗口下部的文件名显示为本程序自动生成的文件名以方便修改版本,例如将“V1.00”改为“V2.00”等等!


  1. Private Sub CommandButton1_Click()
  2. On Error Resume Next
  3. If Range("a1") = "" Or Range("f3") = "" Or Range("h3") = "" Or Range("b7") = "" Or Range("b6") = "" Then
  4. Unload UserForm4
  5. MsgBox "请将公司、项目、业务员、报价员信息填写完全再保存 !"

  6. Else

  7.     Dim fso As Scripting.FileSystemObject
  8.     Dim myFolder As String
  9.     Application.ScreenUpdating = False
  10.     lr = 30
  11.     lr1 = 50
  12.     With ThisWorkbook
  13.    
  14.         Workbooks.Add (1)
  15.         .Sheets(2).Range("A:I").Copy
  16.         ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
  17.         ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats
  18.         ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
  19.         ActiveWorkbook.Sheets.Add
  20.         .Sheets(1).Range("A:H").Copy
  21.         ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
  22.         ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats
  23.         ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
  24.         
  25.     End With
  26.    
  27.     myFolder = "d:\报价文件"
  28.     Set fso = New Scripting.FileSystemObject
  29.     If fso.FolderExists(myFolder) Then
  30.         Call 导出数据
  31.     Else
  32.         fso.CreateFolder myFolder
  33.         Call 导出数据
  34.     End If
  35.     Set fso = Nothing
  36.     Application.ScreenUpdating = True
  37.     MsgBox "数据已被导出,保存在D:\报价文件\...", 48, "导出提示"
  38.     Unload UserForm4
  39.     End If
  40. End Sub
  41. Sub 导出数据()

  42.     ''需要改变程序,实现在发现有相同文件名时,显示WINDOWS标准的“另存为”窗口,在窗口下部的文件名显示为本程序自动生成的文件名以方便修改版本,例如V1.00、V2.00等等!
  43.    
  44.     Application.DisplayAlerts = False
  45.     ActiveWorkbook.SaveAs MyPath & "d:\报价文件\ MSGM(JS)" & "_" & Range("B2") & "_TO " & Range("B6") & "." & Range("B7") & "." & Range("G6") & "(" & "报价" & ")" & "_ FROM." & Range("F3") & "(" & Range("H3") & ") V1.00" & ".xlsx"
  46.     ActiveWorkbook.Close
  47.     Application.DisplayAlerts = True
  48.     Application.ScreenUpdating = True
  49. End Sub

  50. Private Sub CommandButton2_Click()
  51. Unload UserForm4
  52. End Sub

  53. Private Sub Frame1_Click()

  54. End Sub
复制代码
最佳答案
2016-6-10 12:07
  1. Sub 导出数据()
  2.     Dim MyName$
  3.     Dim wb As Workbook
  4.     ''需要改变程序,实现在发现有相同文件名时,显示WINDOWS标准的“另存为”窗口,在窗口下部的文件名显示为本程序自动生成的文件名以方便修改版本,例如V1.00、V2.00等等!
  5.     Application.DisplayAlerts = False
  6.     MyName = "d:\报价文件\ MSGM(JS)" & "_" & Range("B2") & "_TO " & Range("B6") & "." & Range("B7") & "." & Range("G6") & "(" & "报价" & ")" & "_ FROM." & Range("F3") & "(" & Range("H3") & ") V1.00" & ".xlsx"
  7.     If Dir(MyName) = vbNullString Then
  8.         ActiveWorkbook.SaveAs MyPath & MyName
  9.         
  10.     Else
  11.         Filename = Application.GetSaveAsFilename(MyName)
  12.         Set wb = ActiveWorkbook
  13.         wb.SaveAs Filename
  14.     End If
  15.     ActiveWorkbook.Close
  16.     Application.DisplayAlerts = True
  17.     Application.ScreenUpdating = True
  18. End Sub
复制代码

book1.rar

32.51 KB, 下载次数: 15

发表于 2016-6-10 12:07 | 显示全部楼层    本楼为最佳答案   
  1. Sub 导出数据()
  2.     Dim MyName$
  3.     Dim wb As Workbook
  4.     ''需要改变程序,实现在发现有相同文件名时,显示WINDOWS标准的“另存为”窗口,在窗口下部的文件名显示为本程序自动生成的文件名以方便修改版本,例如V1.00、V2.00等等!
  5.     Application.DisplayAlerts = False
  6.     MyName = "d:\报价文件\ MSGM(JS)" & "_" & Range("B2") & "_TO " & Range("B6") & "." & Range("B7") & "." & Range("G6") & "(" & "报价" & ")" & "_ FROM." & Range("F3") & "(" & Range("H3") & ") V1.00" & ".xlsx"
  7.     If Dir(MyName) = vbNullString Then
  8.         ActiveWorkbook.SaveAs MyPath & MyName
  9.         
  10.     Else
  11.         Filename = Application.GetSaveAsFilename(MyName)
  12.         Set wb = ActiveWorkbook
  13.         wb.SaveAs Filename
  14.     End If
  15.     ActiveWorkbook.Close
  16.     Application.DisplayAlerts = True
  17.     Application.ScreenUpdating = True
  18. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-6-10 17:02 | 显示全部楼层
老司机带带我 发表于 2016-6-10 12:07

谢谢你,学习了,完全符合我自己的想法!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 07:58 , Processed in 0.813048 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表