明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2054|回复: 5

如何用VBA批量更换打印模型中的打印机名称?

[复制链接]
发表于 2005-11-24 18:02:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-12-1 19:43:28 编辑

我有很多的CAD图纸,用的都是HP LaserJet 8100 Series PCL的打印机,现在打印机换成了HP LaserJet 5100 PCL 6,该如何用VBA批量把D:\cad\下图纸的打印机由HP LaserJet 8100 Series PCL更改为HP LaserJet 5100 PCL 6,我不想手动一个个修改了,请高手解决!
 楼主| 发表于 2005-11-26 14:54:00 | 显示全部楼层
我知道用VBA for Excel可以!相信用CAD也可以!请高手解答!
 楼主| 发表于 2005-12-1 19:40:00 | 显示全部楼层
我可以用以下代码批量打开Excel,但不知该如何批量打开CAD,
  1. Sub xiugai()
  2. Application.ScreenUpdating = False
  3. With Application.FileSearch
  4. .LookIn = "D:\new"
  5. .FileType = msoFileTypeExcelWorkbooks
  6. .SearchSubFolders = True
  7. If .Execute > 0 Then
  8. For i = 1 To .FoundFiles.Count
  9. Workbooks.Open Filename:=.FoundFiles(i)
  10. Worksheets("10KV1").Select
  11. Range("D65").Value = 0
  12. Range("D66").Value = 0
  13. Range("D67").Value = 0
  14. Range("D78").Value = 0
  15. Range("D79").Value = 0
  16. Range("D133").Value = 0
  17. ActiveWorkbook.Close savechanges:=True
  18. Next i
  19. Else
  20. MsgBox "没有找到任何工作簿文件"
  21. End If
  22. End With
  23. Application.ScreenUpdating = True
  24. End Sub

 楼主| 发表于 2006-2-10 14:48:00 | 显示全部楼层
论坛这么冷清...............
发表于 2006-2-14 11:45:00 | 显示全部楼层
;; The following code change the default modelspace printer
;; for all the drawings in the path "H:\" to "DWF6 ePlot.pc3"
;; Author: Unknown
  1. Option Explicit
  2. Sub BatchChangePrinter()
  3. Dim files() As String
  4. Dim file_name As String
  5. Dim dir_path As String
  6. Dim num_files, a As Long
  7. dir_path = "H:\*.dwg"
  8. file_name = Dir$(dir_path)
  9. Do While Len(file_name) > 0
  10.     If Not (file_name = ".") Or (file_name = "..") Then
  11.         num_files = num_files + 1
  12.         ReDim Preserve files(1 To num_files)
  13.         files(num_files) = Left(dir_path, Len(dir_path) - 5) & file_name
  14.     End If
  15.     file_name = Dir$()
  16. Loop
  17. For a = LBound(files) To UBound(files)
  18.     Dim doc As AcadDocument
  19.     Dim model As AcadLayout
  20.      Set doc = ThisDrawing.Application.Documents.Open(files(a))
  21.      Set model = doc.Layouts("Model")
  22.      model.RefreshPlotDeviceInfo
  23.      model.ConfigName = "DWF6 ePlot.pc3"
  24.      doc.Close (True)
  25. Next
  26. End Sub
发表于 2006-2-14 12:29:00 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 06:18 , Processed in 0.145048 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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