PlotStyleName 属性的问题
不知这是不是个BUG。如果在文件中未使用的打印样式中的名称,则使用程序就会出错。
看看下图:
其中当前使用的打印样式名有“普通”和“默认”,但打印样式表“monochrome.stb”中还有一个“Style 1”的打印样式名,可是通过程序就不能进行把打印样式改为“Style 1”。出现以下错误:
If LCase(ThisDrawing.ActiveLayout.StyleSheet) <> "monochrome.stb" Then ThisDrawing.ActiveLayout.StyleSheet = "monochrome.stb"
For Each LayerName In ThisDrawing.Layers
If LayerName.Name = "5" Or LayerName.Name = "7" Then LayerName.Lineweight = acLnWt050
Debug.Print LayerName.PlotStyleName
LayerName.PlotStyleName = "Style 1"
Next LayerName
但如果把其中一个图层手工设为Style 1后,程序也就可以正常运行了。
程序的前面已经加上了ThisDrawing.ActiveLayout.RefreshPlotDeviceInfo了。 解决办法:如果出错,则先使用以下该句让某一个图层使用相应样式,再执行就不会出错:
ThisDrawing.SendCommand "-layer" & vbCr & "ps" & vbCr & "Style 1" & vbCr _
& "需要更改样式的图层名" & vbCr & vbCr
页:
[1]