winabcd 发表于 2006-10-18 07:54:00

[求助]下列删除文字样式的方法有什么问题

我想在VBA中删除一个指定的文字样式,可我的代码怎么也删除不了,每次运行都出错。
Dim objCount As Integer
Dim i As Integer
objCount = ThisDrawing.TextStyles.Count
Dim textObj As AcadTextStyle
For i = 0 To objCount - 1
Set textObj = ThisDrawing.TextStyles.Item(i)
If textObj.Name = "aaa" Then ThisDrawing.TextStyles.Item(i).Delete
Next

流星蔡园 发表于 2006-10-19 08:53:00

错误信息已经写得很清楚了,当前图档中有文字使用了该文字样式,所以删不了

winabcd 发表于 2006-10-24 09:27:00

不是的,我对图中的所有文字都进行了检查,没有文字使用这处样式。这可以确定。

azjmjsj 发表于 2006-10-28 10:59:00

正确的代码如下:
For Each txtStyle In ThisDrawing.TextStyles
      If txtStyle.Name = "aaa" Then
            txtStyle.Delete
      End If
Next

winabcd 发表于 2006-10-30 08:21:00

楼上的代码可以通过,谢谢了!
还有一个问题,我处理的一些外来图纸中,有一些图内有这样的文字样式,其样式名为空,即""。我用下列代码
For Each txtStyle In ThisDrawing.TextStyles
      If txtStyle.Name = "" Then
            txtStyle.Delete
      End If
Next
进行删除时,出错。出错信息和前面一样。

azjmjsj 发表于 2006-11-4 13:46:00

用下列代码试一下
For Each txtStyle In ThisDrawing.TextStyles
      If Trim(UCase(txtStyle.Name)) = ""Then
            txtStyle.Delete
      End If
Next
页: [1]
查看完整版本: [求助]下列删除文字样式的方法有什么问题