russell84 发表于 2022-7-6 17:18:08

VBA将图形添加到列表

我正在创建vba以批量更改图形标题栏中的属性。
 
有人能帮我从实际设置它,这样就有一个添加到要编辑的列表图纸的方法。
 
每个人都用什么做这个??
 
谢谢

BIGAL 发表于 2022-7-6 17:45:12

你可以通过一个简单描述的脚本来完成
 
打开dwg1 vbarun myprog close Y
打开dwg2 vbarun myprog close Y
打开dwg3 vbarun myprog close Y

russell84 发表于 2022-7-6 18:02:16

谢谢Al
 
虽然我真的希望能够将图形添加到vba对话框的列表中。。
 
我已经根据所附的图片设置了对话框。
我只需要知道如何使用“添加”按钮选择图形,然后将其添加到要编辑的列表中。
我的意思是我需要一些代码来做这件事。
 
干杯

borgunit 发表于 2022-7-6 18:10:01

在表单中添加一个公共对话框对象,然后浏览到该文件夹并将其返回到字符串变量txtOpenPath
 

Dim objCD As New FileDialog
   Dim objFileSystem As Scripting.FileSystemObject
   Dim objFile As Scripting.File
   Dim sFile As String
   '''''''''''''''''''''''''''''''''''''''
   With objCD
       .Filter = "Drawing (*.dwg)|*.dwg"
       .Title = "Choose a File in directory to be converted"
       .OwnerHwnd = 0&
       '.MultiSelect = 1
   End With
   
   Set objFileSystem = New Scripting.FileSystemObject
   sFile = objCD.ShowOpen
   Set objFile = objFileSystem.GetFile(sFile)
   txtOpenPath = objFile.ParentFolder
   Set objFile = Nothing
   Set objFileSystem = Nothing
   Set objCD = Nothing
   Exit Sub

 
然后我调用它来填充我的列表框中的所有文件
 

Public Function FindFile( _
ByVal sFol As String, _
ByVal sFile As String, _
ByVal iDirs As Integer, _
ByVal iFiles As Integer, _
ByVal bFound As Boolean, _
ByRef lstBox As ListBox) _
As Long
'------------------------------------------------------------------------------
'
'
'------------------------------------------------------------------------------
Dim fso As New FileSystemObject
Dim fld As Folder
Dim tFld As Folder
Dim tFil As File
Dim FileName As String
'''''''''''''''''''''''''''''''''''''''
On Error GoTo ErrHandler

Set fld = fso.GetFolder(sFol)
FileName = Dir(fso.BuildPath(fld.Path, sFile), vbNormal Or _
vbHidden Or vbSystem Or vbReadOnly)
While Len(FileName) <> 0
   FindFile = FindFile + FileLen(fso.BuildPath(fld.Path, FileName)) 'calls itself
   iFiles = iFiles + 1
   lstBox.AddItem fso.BuildPath(fld.Path, FileName)' Load ListBox
   FileName = Dir()' Get next file
      DoEvents
   Wend
iDirs = iDirs + 1
If fld.SubFolders.Count > 0 And bFound = True Then
   For Each tFld In fld.SubFolders
      DoEvents
      FindFile = FindFile + FindFile(tFld.Path, sFile, iDirs, iFiles, True, lstBox)
   Next
End If
   
ErrHandler:
Select Case Err.Number
Case 0
   Err.Clear
Case Else
   Debug.Print Err.Number & " " & Err.description
   Err.Clear
End Select

End Function

russell84 发表于 2022-7-6 18:21:21

感谢borgunit-我已经让对话框工作了,但只需要将路径传递到列表框。
 
谢谢你的帮助这是一个很好的开始-干杯
页: [1]
查看完整版本: VBA将图形添加到列表