我目前正在尝试制作可以过滤我的BOM表(物料清单)的宏,但它不断收到错误消息。
目标是删除9栏中包含“否”文本的所有行,有人可以帮助我吗?
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim swSelMgr As SldWorks.SelectionMgr
Dim swView As SldWorks.View
Dim swBomTable As SldWorks.BomTableAnnotation
Dim i As Integer
Dim swTableAnn As SldWorks.TableAnnotation
Dim nNumRow As Variant
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swBomTable = swSelMgr.GetSelectedObject5(1)
Set swTableAnn = swBomTable
For i = swTableAnn.RowCount - 1 To 0 Step -1
nNumRow = swBomTable.GetIdForRowNumber(i)
If nNumRow(i, 9) = "No" Then
swBomTable.Deleterow (nNumRow), True
End If
Next i
End Sub
最佳答案
否则将删除所有“否”行。.如无无处无。如果您想单独查找否,那么请在代码的每边“ no”->“ no”处添加空格。
Option Compare Text
Sub deleter()
Dim xrow As Long
Dim lastrow As Long
lastrow = Cells(65000, 9).End(xlUp).Row + 1
xrow = 1
Do
If Not InStr(1, Cells(xrow, 9).Value, "No") = 0 Then
Cells(xrow, 9).EntireRow.delete
Else
xrow = xrow + 1
End If
Loop Until xrow = lastrow
End Sub
如果您需要仅用大写字母查找“否”,则可以随意删除“比较文本”选项
希望我能帮上忙
关于vba - 删除 Material list 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087325/