krampaul82 发表于 2011-2-24 16:46:58

向布局选项卡添加更多文本

大家好,我有一个绘图模板,它有12个布局选项卡,每个选项卡都表示acm-sht1、acm-sht2等。问题是,当分配作业编号时,我需要重新标记选项卡,表示acm-10-xxx sht1、acm-10-xxxx等。有没有办法在vb(a)或Lisp中实现这一点?感谢您的帮助
标记

krampaul82 发表于 2011-2-24 18:08:49

尝试此代码Option Explicit
'===============================================================
'require reference to Microsoft VBScript Regular Expressions 5.5
'===============================================================
Sub ahha()
Dim s As String
Dim i As Long
Dim cnt As Integer
Dim newstr As String
Dim num As Double
Dim regex As RegExp
Set regex = New RegExp
regex.IgnoreCase = False
regex.Global = False
newstr = "Boo"
regex.Pattern = "(acm-)(.*?)(-sht)(\d+)"
' Where:
' (acm-)- constant part
' (.*?) -any charachters you need to replace with 'newstr'
' (-sht)- constant part
' (\d+) - any digits
Dim olayout As AcadLayout
For Each olayout In ThisDrawing.Layouts
If Not olayout.ModelType Then
ThisDrawing.ActiveLayout = olayout
olayout.Name = regex.Replace(olayout.Name, "$1" & newstr & "$3" & "$4")
Debug.Print olayout.Name 'debug only
End If
Next
Set regex = Nothing
ThisDrawing.SetVariable "tilemode", 1
End Sub

Matt__W 发表于 2011-2-25 09:29:16


这是我试图从一个模块中运行的,请参阅红色注释挂起的位置 我做得对吗
感谢您的帮助,在您方便的时候---------------------------------------------------------------------------------------
&039;模块 :模块1;日期时间:2011年2月25日07:43;作者 :
&039;目的 :
&039---------------------------------------------------------------------------------------
Option ExplicitSub gtc\u tab\u rename()Dim s As StringDim i As LongDim newstr As StringDim num As Double[程序停止在此。编译错误用户定义的类型未定义]
设置正则表达式=新正则表达式。IgnoreCase=False。Global=False(输入项目编号:)&nbsp&nbsp'设置选项卡的项目编号。如果tabrename=&quot&引用;然后结束&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp'如果用户从输入框点击cancel,则退出clean;确认项目编号;您已输入“&选项卡重命名(&R)&引用;这是正确的吗&引用&nbsp&nbsp' 定义消息
Style=vbYesNo+vbInformation+vbDefaultButton1&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp' 定义按钮
标题;gtc确认项目编号“&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp' 定义标题
Ctxt=1000&nbsp' 定义主题&nbsp&nbsp&nbsp
如果响应=vbYes,则&nbsp' 用户选择是
&nbsp&nbsp&nbsp
其他:gtc\u tab\u重命名' 用户选择“否”。重新启动程序以进行其他选择;结束#039;如果newstr=&quot&选项卡重命名(&R)&引用
正则表达式。图案=“”;(acm-(**?)(-sht)(\d+“
&039;其中:
&039;(acm-)常数部分;(.*?) - 任何需要替换为#039;newstr和039
&039;(-sht)-常数部分;(\d+)-任何数字将olayout作为此图形中每个OLAYUET的AcadLayout。布局,如果不是olayout。然后键入此图纸。ActiveLayout=olayout。Name=regex.Replace(olayout.Name,“$1”newstr“$3”和“$4”)
调试。打印olayout。姓名#039;如果下一步设置正则表达式为Nothing,则仅调试结束。设置变量;“tilemode”;,1末端接头

krampaul82 发表于 2011-2-25 09:35:21

祝你玩得开心&nbsp 

Matt__W 发表于 2011-2-25 10:53:06

苏惠特!谢谢分享Matt!我确实修改了一些,我改变了Ucase T Lcase。。

krampaul82 发表于 2011-2-25 11:20:47

苏惠特!谢谢分享Matt!我确实修改了一些,我更改了Ucase T Lcase

krampaul82 发表于 2011-2-25 15:10:15

是SNL的IT人员吗?我喜欢那个短剧…走开!

krampaul82 发表于 2011-2-25 17:49:17

添加对Microsoft VBScript正则表达式5.5的引用

krampaul82 发表于 2011-3-1 10:21:12

添加对Microsoft VBScript Reguar Expressions 5.5的引用添加了引用,该程序不会挂起,但不会对选项卡执行任何操作。。。。
页: [1]
查看完整版本: 向布局选项卡添加更多文本