QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2429|回复: 8
收起左侧

[求助] 在宏里怎么调用solidworks自带的“选择文件夹”对话框?

[复制链接]
发表于 2022-4-21 13:37:53 | 显示全部楼层 |阅读模式 来自: 中国江苏常州
其他
主题分类用于问题归类:

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
求助各位大佬,在SW宏里怎么调用solidworks自带的“选择文件夹”对话框,如下图,不知道用哪个函数或者方法可以调用这个对话框。类似于用GetOpenFileName可以调用“打开”对话框一样,
+ o3 R: M( Q0 Z; i+ ]7 [# W) ~4 Q用BrowseForFolder也可以选择文件夹,但是感觉没有solidworks自带的那个好用。& l% P" @- K" y
选择文件夹01.png 3 M* z) i: d, u! U+ x

' D  q: i- _, Y
4 Y$ ]" J( `  O% b$ u
! W, _: I- e+ T: M- f
 楼主| 发表于 2022-4-23 09:18:32 | 显示全部楼层 来自: 中国江苏常州
自己顶一下,希望知道的朋友能分享下方法
发表于 2022-4-26 22:03:49 | 显示全部楼层 来自: 中国福建厦门
microsoft shell controls and automation
 楼主| 发表于 2022-4-28 18:22:26 | 显示全部楼层 来自: 中国江苏常州
fend5566 发表于 2022-4-26 22:03
% A4 t2 t( j4 L% bmicrosoft shell controls and automation
# n. T+ g0 S7 [, t3 p) `% b/ Y
能具体点吗,宏不是太懂,只自学了一点,能有个例子就好了。用这个方法我只能打开这样的对话框
  x* P: J/ ^( H0 E
) `9 \% h# A1 U- L 12345.png 8 f& @5 h8 L) i$ [

点评

樓主是想要開啟左邊的快速存取?  发表于 2022-5-20 09:39
 楼主| 发表于 2022-5-16 15:43:40 | 显示全部楼层 来自: 中国江苏常州
还有希望能得到高手的指点吗
发表于 2022-5-20 09:38:05 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2022-5-20 09:58 编辑
  V- \- T& N& j# d8 E# M
6 l: B' L, T. [9 A代碼如下~6 ]1 A$ V* ~: E& X8 D
  1. Option Explicit: ~3 c7 o: U6 C
  2.   W8 r8 e% }' t6 ?# M) l' w
  3. Dim swApp As SldWorks.SldWorks- X& U  r) u1 V+ y
  4. ) n8 M7 K3 ]% ?2 R, ]% g$ w! b& Q
  5. Sub main(). p% a( N& \3 {  D  l( x
  6. . T, g- h8 J4 R, q
  7.   Set swApp = Application.SldWorks
      q1 ?0 f) r. w/ J4 ~" h* r. b
  8.   Dim swFilter As String
    " P" x' g3 `5 u& X
  9.   Dim fileName As String+ o3 U$ Q7 Y$ k8 L8 K: p
  10.   Dim fileConfig As String
    , V: ]: q+ i5 x- V, A
  11.   Dim fileDispName As String
    # m. ~; N  E3 f: E' x/ r
  12.   Dim fileOptions As Long* d: w4 W. j* _2 Z$ Y; G
  13.   swFilter = "SOLIDWORKS Files (*.sldprt; *.sldasm; *.slddrw)|*.sldprt;*.sldasm;*.slddrw"; t, P3 x0 \9 |2 n/ ~
  14.   ! W2 l0 y7 k& s9 `; V
  15.   ' Browse and get the Selected file name9 ^3 Z; w" _" Z  S$ Y
  16.   fileName = swApp.GetOpenFileName("Browse Document", "", swFilter, fileOptions, fileConfig, fileDispName)  x1 r6 L1 ^0 ^
  17. - R4 _$ u2 P) s. `: t5 u
  18. End Sub
复制代码

9 d2 ]6 _3 c: p) d# l, v1 f7 V: L
3 N/ _6 t3 u+ Q8 e% y
 楼主| 发表于 2022-5-23 15:16:20 | 显示全部楼层 来自: 中国江苏常州
gt.adan 发表于 2022-5-20 09:38
! |/ @; T$ W, p8 g3 x代碼如下~
2 T3 {6 f3 W; h6 U' ~
多谢回复,您的代码是打开某个文件的,我现在是想要选择到某个文件夹位置,而不打开具体文件,只要得到文件夹的路径就好。
7 ]$ {3 t) @/ ^比如我们在”系统选项“设置 文件模板 位置的时候,只需要选择一个文件夹,现在就不知道在宏里怎么调用到和那一样的“选择文件夹”对话框。

点评

多加一行代碼就可以了…  详情 回复 发表于 2022-12-13 13:31
发表于 2022-12-13 13:31:53 | 显示全部楼层 来自: 中国台湾
lider2010 发表于 2022-5-23 15:167 u% F4 i# W+ x/ I
多谢回复,您的代码是打开某个文件的,我现在是想要选择到某个文件夹位置,而不打开具体文件,只要得到文 ...

) t: Y- B1 p9 \, F1 Y# q* m多加一行代碼就可以了…
. P, w& B% ^7 k: p+ l
+ P# z  A/ Q+ A  ^+ H1 n! m4 a
  1. Option Explicit1 w2 [4 D" R5 m/ z* R

  2. & d1 o4 t* A6 Z
  3. Dim swApp As SldWorks.SldWorks" x" u+ u! J* F2 h
  4. Dim swFilter As String, fileName As String, fileConfig As String, fileDispName As String; H6 a8 n0 g. F$ g  O7 N8 _6 H/ U
  5. Dim fileOptions As Long* h5 ~) \" O# X9 r

  6. / a6 I1 Q. e- ]+ U5 n. P9 ?
  7. Sub main()1 f" A( ~5 A! Z7 R0 T
  8. Set swApp = Application.SldWorks  X8 j' z3 v: p' y7 t
  9. swFilter = "All(*.*)|*.*"* Y& x  s! K% t: U5 S
  10. ' _/ b2 @0 p) r, C6 a
  11. ' Browse and get the Selected file name
    % T( o* R! K. t* |1 S
  12. fileName = swApp.GetOpenFileName("Browse Document", "", swFilter, fileOptions, fileConfig, fileDispName)
    * S7 Q/ c' w1 S& ]7 |. X- {, P( o4 \9 M
  13. ' Get the path of the selected file
    : m* J' i, ^8 q6 l: n+ v; j6 _
  14. fileName = Left(fileName, InStrRev(fileName, ""))/ y+ x8 A3 z7 r
  15. Debug.Print fileName
    - A! y  p; m# g+ W; N2 _
  16. End Sub: Y6 J) n$ n. h; p
复制代码

( v% s3 J9 D4 t7 F1 _8 r8 O' T
. Z) q0 g7 Q* S- O6 m% i
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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