h_lon 发表于 2003-12-22 19:29:00

[VBA]为什么我不能过滤掉不要的图层

为什么我不能过滤掉不要的图层?
sub aaa()   

    Dim txLa As AcadLayer
    Dim TxSS As AcadSelectionSet
    Dim i As Integer, j As Integer

    Dim Fd(0) As Integer
    Dim fdata As Variant, ftype As Variant
   
    Fd(0) = 8
    fdata = Fd(0)

    Set TxSS = ThisDrawing.SelectionSets.Add("Txss")

    For i = 0 To ThisDrawing.Layers.Count - 1
      Set txLa = ThisDrawing.Layers.Item(i)
      If txLa.Name <> "0" Then
            
            ftype = txLa.Name
            TxSS.Select acSelectionSetAll, ftype, fdata
'            Debug.Print TxSS.Item(0).Layer, TxSS.Item(0).ObjectName
            ThisDrawing.Export txLa.Name, "wmf", TxSS
            TxSS.Clear
      End If
    Next i
End Sub

h_lon 发表于 2003-12-22 20:00:00

我的想法是将除0层外的其它层以wmf输出,但我却无法将不需要的图层中的图元滤掉。版主,我错在哪里?

bluemoon 发表于 2003-12-22 20:40:00

TxSS.Select acSelectionSetAll, ftype, fdata
这句有错吧
这样试试
TxSS.Select acSelectionSetAll, , , FType, FData

h_lon 发表于 2003-12-22 21:50:00

bluemoon兄,这样不行,你在帮忙看看.

mccad 发表于 2003-12-22 21:57:00

有几个问题:
1.过滤器的FType, FData均应为变体数组,其中FType的元素必须为数组,而FData的元素必须为变体,它们形成一一对应的关系。
2.过滤非“0”的图层,可以使用简单的“~0”来过滤,而不必你那么复杂。
3.正如bluemoon所说的,你的Select方法的参数写得有问题。

my_computer 发表于 2004-1-3 17:05:00

先做图形净化可以吗?purge
页: [1]
查看完整版本: [VBA]为什么我不能过滤掉不要的图层