
Dim sw全名, 另存全名 As String Dim a, b As String Dim 拟转格式, 拟生成文件夹, SheetName As String Dim 当前行 Sub 另存为其他格式(ByVal 拟转格式) '拟转格式 = "dwg" 拟生成文件夹 = Range("A4") & "" & 拟转格式 If "" <> Dir(拟生成文件夹, 16) Then a = Format(Date, "yymmdd") '当前年月日 b = Format(Time, "hhmmss") '当前时间 拟生成文件夹 = 拟生成文件夹 & "=" & a & "." & b End If VBA.MkDir (拟生成文件夹) If 拟转格式 = "dwg" Then MsgBox "先设置好转换选项,再继续!", vbInformation ' Call sw初始化("") Set SwApp = CreateObject("SldWorks.Application") '启动SW If 拟转格式 = "png" Then boolstatus = SwApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swTiffPrintDPI, 400) End If 获取行列号 文件个数 = 1 Set 映射字典 = CreateObject("scripting.dictionary") For 当前行 = 首行 To 末行 Cells(当前行, 文件路径列号).Select 'If ActiveCell.Interior.ColorIndex = "-4142" Or ActiveCell.Interior.ColorIndex = "10" Then If ActiveCell.Interior.ColorIndex = "-4142" Then '只处理无填充色的行==开始 If 文件个数 > 3 Then swModel.Visible = False '隐藏掉上一个api打开的文件 sw全名 = Cells(当前行, 文件路径列号) & Cells(当前行, 文件名称列号) Call sw初始化(sw全名) SheetName = Cells(当前行, 图纸名称列号) 图纸总数 = swModel.GetSheetCount If 图纸总数 > 1 Then 另存全名 = 拟生成文件夹 & "" & FilenameWHZ & "-" & SheetName & "." & 拟转格式 Else 另存全名 = 拟生成文件夹 & "" & FilenameWHZ & "." & 拟转格式 End If bRet = swModel.ActivateSheet(SheetName) Set ExportData = Nothing Select Case 拟转格式 Case "png" 映射字典.RemoveAll Call sw常量映射(映射字典) For Each k In 映射字典("俗称tosw") Debug.Print k & "==" & 映射字典("俗称tosw")(k) Next sw图纸大小 = 映射字典("俗称tosw")(Cells(当前行, 图纸大小列号).Value) boolstatus = SwApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, sw图纸大小) Case "PDF" Dim swExportPDFData As SldWorks.ExportPdfData Set swExportPDFData = SwApp.GetExportFileData(1) ' Dim strSheetName(0) As String ' strSheetName(0) = SheetName swExportPDFData.ViewPdfAfterSaving = False boolstatus = swExportPDFData.SetSheets(swExportData_ExportSpecifiedSheets, SheetName) Set ExportData = swExportPDFData End Select boolstatus = swModel.Extension.SaveAs(另存全名, 0, 0, ExportData, lErrors, lwarnings) If bRet Then ' Cells(当前行, 文件路径列号).Interior.ColorIndex = 4 End If 文件个数 = 文件个数 + 1 End If '只处理无填充色的行==结束 Next 'MsgBox "done!", vbInformation End Sub Sub 转图片作废() 拟转格式 = "png" Call 生成文件夹 Call sw初始化("") 激活窗口 boolstatus = SwApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA3size) boolstatus = SwApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swTiffPrintDPI, 400) 另存全名 = FilePath & "kk.PNG" boolstatus = swModel.Extension.SaveAs(另存全名, 0, 0, Nothing, lErrors, lwarnings) End Sub