bjjsp001 发表于 2010-7-12 07:53:00

[求助]VBA做打印的问题

<p><font face="Verdana">我做了一个打印的程序,因为自己使用做的比较简单,通过选择多段线方框或者图块来确定打印区域,来实现批量打印;本来小心操作的话用着没有问题,可是今天同事的 一个图拷过来打印的时候发现,打印区域会跑,偏移到空白的地方去了,但是把这张图的内容拷到一张新建的图里再打又能用了,不知道是什么问题,求助帮忙看下,下面的事全部的代码,有个窗体带了两个列表框,打印机和图纸的列表,谢谢!</font></p>
<p>&nbsp;</p>
<p><font face="Verdana">Private Sub CmdOK_Click()</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; '保证选项完整<br/>&nbsp;&nbsp;&nbsp; If cmb1.text = "" Or cmb1.text = "无" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label1.Caption = "请选择打印机!"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; If cmb2.text = "" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label1.Caption = "请选择图纸类型!"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '确保当前布局是模型空间<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout = ThisDrawing.Layouts.Item("Model")<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '设置打印设备<br/>&nbsp;&nbsp;&nbsp; If Not cmb1.text = "" Or cmb1.text = "无" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.ConfigName = cmb1.text<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.C<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '设置打印比例为"布满图纸"<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.StandardScale = acScaleToFit<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ' 设置图纸是否居中打印<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.CenterPlot = True<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '设置图纸类型<br/>&nbsp;&nbsp;&nbsp; If Not cmb2.text = "" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.CanonicalMediaName = cmb2.text<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.Can<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PaperUnits = acMillimeters<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ' 设置是否应用打印样式<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PlotWithPlotStyles = True</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; ' 设置打印样式表<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.StyleSheet = "Tarch7.ctb"<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '让AUTOCAD在前台进行打印<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SetVariable "BACKGROUNDPLOT", 0<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '--------------------设置打印窗口----------------------------------------<br/>&nbsp;&nbsp;&nbsp; Dim i As Integer<br/>&nbsp;&nbsp;&nbsp; Dim dkxset As AcadSelectionSet<br/>&nbsp;&nbsp;&nbsp; Dim element As AcadEntity<br/>&nbsp;&nbsp;&nbsp; Dim aaa As Long<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim fType(0 To 3) As Integer<br/>&nbsp;&nbsp;&nbsp; Dim fData(0 To 3) As Variant<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '设置过滤<br/>&nbsp;&nbsp;&nbsp; fType(0) = -4: fData(0) = "&lt;or"<br/>&nbsp;&nbsp;&nbsp; fType(1) = 0: fData(1) = "INSERT"<br/>&nbsp;&nbsp;&nbsp; fType(2) = 0: fData(2) = "LWPOLYLINE"<br/>&nbsp;&nbsp;&nbsp; fType(3) = -4: fData(3) = "or&gt;"<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; Set dkxset = ThisDrawing.SelectionSets.Add("ss1")<br/>&nbsp;&nbsp;&nbsp; Me.Hide<br/>&nbsp;&nbsp;&nbsp; dkxset.SelectOnScreen fType, fData<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set dkxset = ThisDrawing.SelectionSets.Item("ss1")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dkxset.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dkxset.Delete<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dkxset.SelectOnScreen fType, fData<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; aaa = dkxset.Count<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; i = 0<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim minxx() As Double<br/>&nbsp;&nbsp;&nbsp; Dim minyy() As Double<br/>&nbsp;&nbsp;&nbsp; Dim maxxx() As Double<br/>&nbsp;&nbsp;&nbsp; Dim maxyy() As Double<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ReDim minxx(aaa)<br/>&nbsp;&nbsp;&nbsp; ReDim minyy(aaa)<br/>&nbsp;&nbsp;&nbsp; ReDim maxxx(aaa)<br/>&nbsp;&nbsp;&nbsp; ReDim maxyy(aaa)<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; For Each element In dkxset<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.GetBoundingBox minpoint, maxpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call ThisDrawing.Utility.TranslateCoordinates(minpoint, acWorld, acDisplayDCS, False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call ThisDrawing.Utility.TranslateCoordinates(maxpoint, acWorld, acDisplayDCS, False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minxx(i) = minpoint(0): minyy(i) = minpoint(1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxxx(i) = maxpoint(0): maxyy(i) = maxpoint(1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = i + 1<br/>&nbsp;&nbsp; Next<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; dkxset.Clear<br/>&nbsp;&nbsp; dkxset.Delete<br/>&nbsp;&nbsp; Dim minpt(0 To 1) As Double, maxpt(0 To 1) As Double<br/>&nbsp;&nbsp; i = 0<br/>&nbsp;&nbsp; Dim num As Integer<br/>&nbsp;&nbsp; num = 0<br/>&nbsp;&nbsp; For i = 0 To aaa - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not minxx(i) = maxxx(i) Or minyy(i) = maxyy(i) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; num = num + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim pt1(0 To 2) As Double<br/>&nbsp;&nbsp;&nbsp; Dim pt2(0 To 2) As Double<br/>&nbsp;&nbsp; For i = 0 To aaa - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minpt(0) = minxx(i): minpt(1) = minyy(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxpt(0) = maxxx(i): maxpt(1) = maxyy(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt1(0) = minpt(0): pt1(1) = minpt(1): pt1(2) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call ThisDrawing.ModelSpace.AddCircle(pt1, 200)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt2(0) = maxpt(0): pt2(1) = maxpt(1): pt2(2) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call ThisDrawing.ModelSpace.AddCircle(pt2, 200)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not minpt(0) = maxpt(0) Or minpt(1) = maxpt(1) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '设置打印方向<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (maxpt(0) - minpt(0)) &lt; (maxpt(1) - minpt(1)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PlotRotation = ac0degrees&nbsp;&nbsp; '纵向<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PlotRotation = ac90degrees&nbsp; '横向<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '设置窗口对角点<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.SetWindowToPlot minpt, maxpt<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '设置打印类型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PlotType = acWindow<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '打印<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not cmb1.text = "" Or cmb1.text = "无" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.plot.PlotToDevice cmb1.text<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.plot.PlotToDevice "Adobe PDF"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; num = num - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '恢复系统变量的值<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SetVariable "BACKGROUNDPLOT", 2<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ThisDrawing.Utility.Prompt num &amp; "张图打印完毕!"<br/>End Sub</font></p>

wylong 发表于 2010-7-12 11:57:00

<p>在</p>
<p>'--------------------设置打印窗口----------------------------------------</p>
<p>上面加上</p>
<p><font style="BACKGROUND-COLOR: #00ff00" face="Verdana">' 重新生成当前图形<br/>ThisDrawing.Regen acActiveViewport</font></p>
<p>试试</p>
<p>-----------------------------------------------------</p>
<p>另外:</p>
<p>'设置打印设备<br/>&nbsp;&nbsp;&nbsp; If Not cmb1.text = "" Or cmb1.text = "无" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.ConfigName = cmb1.text<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="BACKGROUND-COLOR: #ff0000">ThisDrawing.ActiveLayout.C</font><br/>&nbsp;&nbsp;&nbsp; End If</p>
<p>和</p>
<p>'设置图纸类型<br/>&nbsp;&nbsp;&nbsp; If Not cmb2.text = "" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.CanonicalMediaName = cmb2.text<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style="BACKGROUND-COLOR: #ff0000"> ThisDrawing.ActiveLayout.Can<br/></font>&nbsp;&nbsp;&nbsp; End If</p>
<p><br/>红色部分代码补全</p>
<p><br/>&nbsp;</p>

bjjsp001 发表于 2010-7-12 14:28:00

<p>还是不行啊,主要问题可能出在这个循环这里,代码中在窗口的两个角点处画了两个圆做标记,点的位置没有错,但是选的窗口却偏移了好多</p>
<p>For i = 0 To aaa - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minpt(0) = minxx(i): minpt(1) = minyy(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxpt(0) = maxxx(i): maxpt(1) = maxyy(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt1(0) = minpt(0): pt1(1) = minpt(1): pt1(2) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call ThisDrawing.ModelSpace.AddCircle(pt1, 200)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt2(0) = maxpt(0): pt2(1) = maxpt(1): pt2(2) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call ThisDrawing.ModelSpace.AddCircle(pt2, 200)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not minpt(0) = maxpt(0) Or minpt(1) = maxpt(1) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '设置打印方向<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (maxpt(0) - minpt(0)) &lt; (maxpt(1) - minpt(1)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PlotRotation = ac0degrees&nbsp;&nbsp; '纵向<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PlotRotation = ac90degrees&nbsp; '横向<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '设置窗口对角点<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.SetWindowToPlot minpt, maxpt<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '设置打印类型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ActiveLayout.PlotType = acWindow<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '打印<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not cmb1.text = "" Or cmb1.text = "无" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.plot.PlotToDevice cmb1.text<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.plot.PlotToDevice "Adobe PDF"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; num = num - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Next i<br/></p>

3xxx 发表于 2013-6-1 13:44:47

这个先记下了。研究研究。
页: [1]
查看完整版本: [求助]VBA做打印的问题