周一至周五 : 08:30 - 17:30 客服专员电话/微信:18049989370 QQ:857188287
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
求助 快表VBA中如何实现,savedialog的功能?
显示全部楼层 倒序浏览 发表日期 2025-11-30 08:28:41 37次阅读 4次回复
目的想实现通过导出按钮,将报表导出成指定文件位置和与报表内字段关联的特殊文件名。目前通过saveas()函数可以导出,但是不能弹出对话框进行选择文件位置,不知道是否有类似函数可以使用?
  1. Public Sub ButtunClick(sender As Object,e As SpreadsheetGear.Windows.Controls.ShapeActionEventArgs)
  2.                  EV.GetLock()
  3.                     Try
  4.                         ' 根据按钮的名称来执行不同的操作
  5.                         Select Case e.Shape.Name
  6.                     Case "导出"
  7.                                        
  8.                         ' 创建保存文件对话框
  9.                        filepath = "C:\Users\me\Desktop\0pdf\xls"
  10.         '                saveDialog.Title = "导出当前工作表"
  11.         '                saveDialog.Filter = "Excel 文件 (*.xlsx)|*.xlsx|CSV 文件 (*.csv)|*.csv"
  12.                         filename = AW.ActiveSheet.Name &"-" & partno & ".xlsx"' 默认文件名
  13.         '                saveDialog.DefaultExt = ".xlsx" ' 默认扩展名
  14.       
  15.                                 AW.SaveAs(filepath & FileName,fileformat.OpenXMLWorkbook)
  16.                                 msgbox("导出成功" & filepath & FileName)
  17.             Case Else
  18. '                MessageBox.Show("未定义的按钮:" & e.Shape.Name, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
  19.         End Select
  20.                     Catch ex As Exception
  21.                         MessageBox.Show("操作失败: ")
  22.                     Finally
  23.                         EV.ReleaseLock()
  24.                     End Try
  25.        End Sub'按钮/标签点击事件
复制代码


本帖最后由 快表帝国客服01 于 2025-12-2 10:56 编辑
  1.   Public Sub ButtunClick(sender As Object, e As SpreadsheetGear.Windows.Controls.ShapeActionEventArgs)
  2.                         If e.Shape.Name = "Button 1" Then
  3.                                 Dim CellName As String = AW.ActiveWorksheet.Range("B4").Text
  4.                                 Dim fileName As String = CellName +  App.RID + ".xlsx"
  5.                                 Dim desktop As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
  6.                                 Dim path As String = System.IO.Path.Combine(desktop, fileName)
  7.                                 
  8.                                 AW.SaveAs(path,fileformat.OpenXMLWorkbook)
  9.                                 MessageBox.Show("OK")
  10.                         End If
  11.                 End Sub'按钮/标签点击事件
复制代码
请参考

测试了一下这个只是获取桌面的文件位置,但不会弹出一个选择文件位置的对话框,是否有方法可以实现每次导出,可以选择导出文件位置的对话框呢?
本帖最后由 快表帝国客服01 于 2025-12-3 09:09 编辑
  1. Imports Microsoft.Win32
  2. Public Sub ButtunClick(sender As Object, e As SpreadsheetGear.Windows.Controls.ShapeActionEventArgs)
  3.         If e.Shape.Name = "Button 1" Then
  4.         Dim cellValue As String = AW.ActiveWorksheet.Range("B4").Text
  5.         Dim saveDialog As New SaveFileDialog()
  6.         saveDialog.FileName = cellValue & App.RID & ".xlsx"
  7.         saveDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx"
  8.         saveDialog.DefaultExt = ".xlsx"
  9.         If saveDialog.ShowDialog() = True Then
  10.                 AW.SaveAs(saveDialog.FileName, FileFormat.OpenXMLWorkbook)
  11.                 MessageBox.Show("文件保存成功!")
  12.         End If
  13.         End If
  14. End Sub'按钮/标签点击事件
复制代码


精彩评论4

本帖最后由 快表帝国客服01 于 2025-12-2 10:56 编辑
  1.   Public Sub ButtunClick(sender As Object, e As SpreadsheetGear.Windows.Controls.ShapeActionEventArgs)
  2.                         If e.Shape.Name = "Button 1" Then
  3.                                 Dim CellName As String = AW.ActiveWorksheet.Range("B4").Text
  4.                                 Dim fileName As String = CellName +  App.RID + ".xlsx"
  5.                                 Dim desktop As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
  6.                                 Dim path As String = System.IO.Path.Combine(desktop, fileName)
  7.                                 
  8.                                 AW.SaveAs(path,fileformat.OpenXMLWorkbook)
  9.                                 MessageBox.Show("OK")
  10.                         End If
  11.                 End Sub'按钮/标签点击事件
复制代码
请参考

测试了一下这个只是获取桌面的文件位置,但不会弹出一个选择文件位置的对话框,是否有方法可以实现每次导出,可以选择导出文件位置的对话框呢?
本帖最后由 快表帝国客服01 于 2025-12-3 09:09 编辑
  1. Imports Microsoft.Win32
  2. Public Sub ButtunClick(sender As Object, e As SpreadsheetGear.Windows.Controls.ShapeActionEventArgs)
  3.         If e.Shape.Name = "Button 1" Then
  4.         Dim cellValue As String = AW.ActiveWorksheet.Range("B4").Text
  5.         Dim saveDialog As New SaveFileDialog()
  6.         saveDialog.FileName = cellValue & App.RID & ".xlsx"
  7.         saveDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx"
  8.         saveDialog.DefaultExt = ".xlsx"
  9.         If saveDialog.ShowDialog() = True Then
  10.                 AW.SaveAs(saveDialog.FileName, FileFormat.OpenXMLWorkbook)
  11.                 MessageBox.Show("文件保存成功!")
  12.         End If
  13.         End If
  14. End Sub'按钮/标签点击事件
复制代码


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

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |