我對VBA有一些背景,我討厭做同樣的任務100次。我經常需要製作Solidworks工程圖,這些工程圖大多隻是我用數據填充的表格。文件中的每張紙上有3件事需要更改(從紙張3到最後一張)。通常我會進入每張紙,然後找到並替換每張紙。然後轉到下一張紙並重復。Solidworks宏在每張圖紙上查找並替換
我的計劃是讓代碼計算頁數,提示用戶進行第一次查找/替換,替換所有頁面上的文本,然後重複進行第二次替換,然後再次替換第三次。我錄製了一個宏並添加了一些代碼,但是我一直收到運行時錯誤(在下面的代碼中)。我記錄的每一個其他宏從來沒有給我這麼多的錯誤,如果你可以請求幫助
Dim swApp As SldWorks.SldWorks
Dim swmodel As SldWorks.ModelDoc2
Dim swdraw As SldWorks.DrawingDoc
Dim Part As Object
Dim Otext As String
Dim Ntext As String
Dim Smax As Integer
Dim i As Integer
Dim swSheet As SldWorks.Sheet
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set swmodel = swApp.ActiveDoc
'Set swSheet = swdraw.GetCurrentSheet
Smax = instance.GetSheetCount() - 3 ' runtime 424 error here
Set swSheet = swdraw.GetCurrentSheet ' runtime 91 error if i skip the line above
Otext = Application.InputBox("find this text")
Ntext = Application.InputBox("find this text")
For i = 1 To Smax
Set Part = swApp.ActiveDoc
'--------------------Find and Replace Annotations--------------------
Set swUtil = swApp.GetAddInObject("Utilities.UtilitiesApp")
Set swUtilFindReplaceAnnotations = swUtil.FindReplaceAnnotations
longstatus = swUtilFindReplaceAnnotations.InitPMPage()
'--------------------Block Recording--------------------
#If 0 Then
#End If
'--------------------UnBlock Recording------------------
swUtilFindReplaceAnnotations.FindText = Otext
swUtilFindReplaceAnnotations.ReplaceText = Ntext
swUtilFindReplaceAnnotations.options = gtFraMatchCase
swUtilFindReplaceAnnotations.AnnotationFilter = gtFraAllTypes
Part.ClearSelection2 True
Part.ClearSelection2 True
Part.ClearSelection2 True
Part.ClearSelection2 True
Part.ClearSelection2 True
longstatus = swUtilFindReplaceAnnotations.ReplaceAll()
'--------------------Block Recording--------------------
#If 0 Then
#End If
'--------------------UnBlock Recording------------------
longstatus = swUtilFindReplaceAnnotations.Close()
Part.SheetNext
Part.ViewZoomtofit2
Next i
End Sub
什麼是實例?似乎沒有被宣佈。 swdraw從未被宣佈。 – AndrewK
來自另一個論壇,解釋如何讓solidworks計算圖形中的工作表數量。在這個例子中,它沒有被使用。 –