SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 6960|回复: 27
打印 上一主题 下一主题

VBA多选文件选择对话框

  [复制链接]

15

主题

124

帖子

663

金币

传奇

Rank: 8Rank: 8

积分
3632

最佳新人活跃会员热心会员宣传达人灌水之王

跳转到指定楼层
楼主
 楼主| 发表于 2021-10-11 10:39:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在SW中,如果采用VBA选择文件,可以用函数GetOpenFileName来选择文件,但该函数只支持单选一个文件,不支持选择多个文件。
  1. Dim Filter                      As String
  2. Dim fileName                    As String
  3. Dim fileConfig                  As String
  4. Dim fileDispName                As String
  5. Dim fileOptions                 As Long

  6. Private Sub CommandButton1_Click()

  7.     Filter = "SolidWorks Files (*.sldprt; *.sldasm; *.slddrw)|*.sldprt;*.sldasm;*.slddrw|Filter name (*.fil)|*.fil|All Files (*.*)|*.*|"
  8.    
  9.     fileName = swApp.GetOpenFileName("File to Attach", "", Filter, fileOptions, fileConfig, fileDispName)

  10.     Debug.Print fileName


  11. End Sub
复制代码

那么,如果同时选择多个文件怎么办呢?
通过查找资料及自己的摸索,终于找到了解决这个问题的办法。
1.如果电脑安装了office相关软件,可以借助office的控件;
  1. Option Explicit
  2. Dim swApp                      As Object
  3. Dim fileName                   As Variant
  4. Dim xlapp                      As Object
  5. Dim i                          As Long
  6. Sub main()
  7.     Dim strFilter           As String
  8.     On Error Resume Next
  9.    
  10.     Set swApp = CreateObject("SldWorks.Application")

  11.     Set xlapp = CreateObject("Excel.Application")
  12.    
  13.     strFilter = "SolidWorks文件 ,*.sldprt;*.sldasm;*.slddrw"

  14.     fileName = xlapp.GetOpenFileName(strFilter, , Title:="选择SolidWorks文件...", MultiSelect:=True)
  15.     Set xlapp = Nothing
  16.    
  17.     If IsArray(fileName) Then
  18.         For i = LBound(fileName) To UBound(fileName)
  19.             Debug.Print fileName(i)
  20.         Next i
  21.     End If
  22. End Sub
复制代码
运行程序后,等对话框弹出后,可通过ctrl+A,ctrl+右键,shift+右键,等方式选择多个文件

利用Office控件多选方式选择文件

2.通过API函数,选择多个文件






打开多选文件对话框(2).zip (30.7 KB, 下载次数: 188, 售价: 30 金币)


评分

参与人数 2威望 +11 金币 +102 贡献 +11 收起 理由
Allate + 6 + 50 + 6 感谢楼主解惑!
猪猪侠 + 5 + 52 + 5 楼主厚道!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏11 转播转播 分享教程|习题|模型|技巧 点赞点赞2 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

39

主题

372

帖子

3082

金币

传奇

Rank: 8Rank: 8

积分
7771

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

沙发
发表于 2021-10-11 18:17:11 | 只看该作者
好东西,感谢分享!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

1

主题

37

帖子

132

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
246
QQ
板凳
发表于 2021-10-11 19:25:14 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

160

帖子

585

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2146

最佳新人活跃会员热心会员宣传达人灌水之王

地板
发表于 2021-10-11 22:56:16 | 只看该作者
楼主太有才了,膜拜中……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

499

帖子

54

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2089

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

5#
发表于 2021-10-20 16:05:21 | 只看该作者

   经典案例图书
活到老学到老!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

499

帖子

54

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2089

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

6#
发表于 2021-10-22 09:18:44 | 只看该作者
在第二种方法基础上修改能否选中单个文件夹
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

15

主题

124

帖子

663

金币

传奇

Rank: 8Rank: 8

积分
3632

最佳新人活跃会员热心会员宣传达人灌水之王

7#
 楼主| 发表于 2021-10-22 10:10:34 | 只看该作者

   经典案例图书
UDF998 发表于 2021-10-22 09:18
在第二种方法基础上修改能否选中单个文件夹

这主要是选择文件的,选择文件夹有专门的对话框!当然,通过修改代码,也可以选择文件夹,但意义不大。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

499

帖子

54

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2089

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

8#
发表于 2021-10-22 10:58:04 | 只看该作者
lhl-RT 发表于 2021-10-22 10:10
这主要是选择文件的,选择文件夹有专门的对话框!当然,通过修改代码,也可以选择文件夹,但意义不大。

感谢,你有已经做好的选择文件夹的对话框吗? 能否发个帖子参考一下
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

15

主题

124

帖子

663

金币

传奇

Rank: 8Rank: 8

积分
3632

最佳新人活跃会员热心会员宣传达人灌水之王

9#
 楼主| 发表于 2021-10-22 14:22:16 | 只看该作者
这个示例利用Office控件选择文件或文件夹,其中有:1.单选文件,
2.多选文件,
3.单选文件夹
用Office控件选择文件或文件夹.zip (10.93 KB, 下载次数: 118, 售价: 10 金币)

SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

499

帖子

54

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2089

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

10#
发表于 2021-10-22 15:25:08 | 只看该作者
感谢感谢,这种方法已经尝试过了,在各位大神的指导下,我目前在SWVBA只能采用这两种方法,使用第一个方法不够直观,用着不习惯。如果直接调用Excel的文件夹对话框,从进程里看到了Excel在后台启动了,从而导致程序运行速度太慢,目前还在找其它方法。

QQ五笔截图未命名.png

MicLink14209921.jpg
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

125

帖子

58

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
447

最佳新人活跃会员热心会员宣传达人灌水之王

11#
发表于 2021-10-23 22:56:50 | 只看该作者
很不错,找到组织了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

160

帖子

585

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2146

最佳新人活跃会员热心会员宣传达人灌水之王

12#
发表于 2021-12-18 10:43:33 | 只看该作者
楼主太有才了,膜拜中……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

394

帖子

1092

金币

传奇

Rank: 8Rank: 8

积分
3800

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

13#
发表于 2021-12-20 09:24:53 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

111

帖子

688

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2165

最佳新人活跃会员热心会员宣传达人

14#
发表于 2022-2-24 15:31:34 | 只看该作者
感谢楼主分享
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

240

帖子

145

金币

堂主

Rank: 4

积分
833

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

15#
发表于 2022-5-7 17:12:40 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

厉害,顶一个!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

372

帖子

189

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1414

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

16#
发表于 2022-8-24 21:05:29 | 只看该作者

   经典案例图书
楼主辛苦了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

394

帖子

1092

金币

传奇

Rank: 8Rank: 8

积分
3800

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

17#
发表于 2022-10-13 23:34:57 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

楼主您好,请问在装配体中选取多个零件或组件改怎么改代码呢?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

424

帖子

785

金币

传奇

Rank: 8Rank: 8

积分
4495

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

18#
发表于 2022-10-14 09:10:47 | 只看该作者

   经典案例图书
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

26

帖子

20

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
247

最佳新人活跃会员宣传达人

19#
发表于 2023-6-20 15:36:24 | 只看该作者
SW机械工程师网,找到组织了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

26

帖子

20

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
247

最佳新人活跃会员宣传达人

20#
发表于 2023-6-20 16:08:09 | 只看该作者
很不错,希望能共享模型,谢谢!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-29 16:15 , Processed in 0.342966 second(s), 38 queries .

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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