乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 71|回复: 4

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

[复制链接]

4

主题

26

帖子

6

银币

初来乍到

Rank: 1

铜币
42
发表于 2005-11-24 18:02:00 | 显示全部楼层 |阅读模式
我有很多的CAD图纸,用的都是HP LaserJet 8100 Series PCL的打印机,现在打印机换成了HP LaserJet 5100 PCL 6,该如何用VBA批量把D:\cad\下图纸的打印机由HP LaserJet 8100 Series PCL更改为HP LaserJet 5100 PCL 6,我不想手动一个个修改了,请高手解决!
回复

使用道具 举报

4

主题

26

帖子

6

银币

初来乍到

Rank: 1

铜币
42
发表于 2005-11-26 14:54:00 | 显示全部楼层
我知道用VBA for Excel可以!相信用CAD也可以!请高手解答!
回复

使用道具 举报

4

主题

26

帖子

6

银币

初来乍到

Rank: 1

铜币
42
发表于 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

回复

使用道具 举报

4

主题

26

帖子

6

银币

初来乍到

Rank: 1

铜币
42
发表于 2006-2-10 14:48:00 | 显示全部楼层
论坛这么冷清...............
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 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
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 23:36 , Processed in 0.776528 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表