有人能给我一些关于如何改进我的编码格式等的建议吗?关于如何改进下面的代码有什么建议吗??
谢谢
下面的代码是我编写的将图形集从DA更改为CC的代码的一部分
它首先从R:\Jobs 2007\07447\Acad\DA复制完整的图形集,并将其粘贴到R:\Jobs 2007\07447\Acad\CC
将单个图形从07447\u DA\u C000重命名为07447\u CC\u C000,然后进入图形并将标题栏中的属性从07447\u DA\u C000重命名为07447\u CC\u C000,然后卸载外部参照-将其从XR07447\u DA\u SURVEY重命名为XR07447\u CC\u SURVEY,并将其重新定位到新的CC文件夹。
如果需要的话,我可以提供表格。
干杯伙计们
Public FormResultREV As BooleanSub RevUpDrawings()Dim tmpyearREV As IntegerDim JobDirectorycurrentREV, jobdirectoryNEWREV, JobNoDirectory, JobYearREV As StringDim CURREV, NEWREV, CURREVPATH, NEWREVPATH, result As StringDim fsIf FormResultREV Then tmpyearREV = CDbl(VBA.Left(UserFormcombined.JOBNOREV, 2)) If tmpyearREV > 80 Then tmpyearREV = 1900 + tmpyearREV Else tmpyearREV = 2000 + tmpyearREV End If JobYearREV = CStr(tmpyearREV) CURREV = "_" & UserFormcombined.CurrentStageREV & "_" NEWREV = "_" & UserFormcombined.NewStageREV & "_" jobdirectoryNEWREV = "R:\Jobs " & JobYearREV & "" & UserFormcombined.JOBNOREV & "\ACAD" & UserFormcombined.NewStageREV JobDirectorycurrentREV = "R:\Jobs " & JobYearREV & "" & UserFormcombined.JOBNOREV & "\ACAD" & UserFormcombined.CurrentStageREV 'Create new directory and copy all old contents Set fs = CreateObject("scripting.filesystemobject") MkDir jobdirectoryNEWREV fs.CopyFile JobDirectorycurrentREV & "\*", jobdirectoryNEWREV 'Rename all drawings result = Dir((jobdirectoryNEWREV & "\*.dwg")) Do If result = "" Then Exit Do Name jobdirectoryNEWREV & "" & result As jobdirectoryNEWREV & "" & Replace(result, CURREV, NEWREV) result = Dir() Loop MsgBox "The entire " & UserFormcombined.CurrentStageREV & " drawing set for Job Number " & UserFormcombined.JOBNOREV & " has been converted to a " _ & UserFormcombined.NewStageREV & " drawing set." & VBA.Chr(13) & "Drawings have been created in the new directory " & jobdirectoryNEWREV & VBA.Chr(13) & _ "Drawings will be now be opened so that title block attributes can be edited and xrefs can be renamed and repathed." & VBA.Chr(13) & VBA.Chr(13) & "Please wait until finished. Thank you", vbInformation, "ATTENTION PLEASE READ"renamedrawingnumbersEnd IfEnd SubFunction renamedrawingnumbers()Dim i, j, k As IntegerDim element, ArrayAttributesDim jobdirectoryNEWREV, JobYearREV, tmpyearREV, OldDWGNO, NewDWGNO As StringDim CURREV, NEWREV, revtest As String tmpyearREV = CDbl(VBA.Left(UserFormcombined.JOBNOREV, 2)) If tmpyearREV > 80 Then tmpyearREV = 1900 + tmpyearREV Else tmpyearREV = 2000 + tmpyearREV End If JobYearREV = CStr(tmpyearREV) revtest = CStr(VBA.Left(UserFormcombined.NewStageREV, 1)) If revtest = "C" Then revtest = "A" Else revtest = "01" End If CURREV = "_" & UserFormcombined.CurrentStageREV & "_" NEWREV = "_" & UserFormcombined.NewStageREV & "_" jobdirectoryNEWREV = "R:\Jobs " & JobYearREV & "" & UserFormcombined.JOBNOREV & "\ACAD" & UserFormcombined.NewStageREVOn Error Resume Next For i = 1 To UserFormcombined.ListBox5REV.ListCount UserFormcombined.ListBox5REV.ListIndex = i - 1 Documents.Open jobdirectoryNEWREV & "" & UserFormcombined.ListBox5REV.Text 'open each drawing in listbox For j = 0 To ThisDrawing.Layouts.Count - 1 'loop through each tab and update info If ThisDrawing.Layouts(j).Name = "Model" Then GoTo 10 ThisDrawing.SendCommand "layout s " & ThisDrawing.Layouts(j).Name & vbCr For Each element In ThisDrawing.PaperSpace If element.EntityType = 7 Then If Err Then GoTo 5 If element.HasAttributes = True Then ArrayAttributes = element.GetAttributes For k = LBound(ArrayAttributes) To UBound(ArrayAttributes) If ArrayAttributes(k).TagString = "DATE" Then ArrayAttributes(k).TextString = VBA.UCase(VBA.Format(VBA.Date, "Mmm yyyy")) If ArrayAttributes(k).TagString = "R" Then ArrayAttributes(k).TextString = revtest If ArrayAttributes(k).TagString = "A" Then ArrayAttributes(k).TextString = revtest If ArrayAttributes(k).TagString = "DESCRIPTION" Then ArrayAttributes(k).TextString = "REVISION IN PROGRESS" If ArrayAttributes(k).TagString = "DWG-NO." Then OldDWGNO = ArrayAttributes(k).TextString NewDWGNO = Replace(OldDWGNO, CURREV, NEWREV) ArrayAttributes(k).TextString = NewDWGNO ThisDrawing.ActiveLayout.Name = NewDWGNO End If Next k End If5 End If Next10 Next j RenameXrefBlockAttribs Next iEnd FunctionFunction RenameXrefBlockAttribs()Dim AttribValues, XrefOld, XrefNew, XrefPathOld, XrefPathNew, ListXref, TEST As StringDim CURREV, NEWREV, CURREVPATH, NEWREVPATH As StringDim element As AcadBlockReference CURREV = "_" & UserFormcombined.CurrentStageREV & "_" NEWREV = "_" & UserFormcombined.NewStageREV & "_" CURREVPATH = "" & UserFormcombined.CurrentStageREV & "" NEWREVPATH = "" & UserFormcombined.NewStageREV & ""On Error Resume Next ListXref = "" 'Create a list of xrefs to avoid repeating - for some reason it lists each element more than once For Each element In ThisDrawing.ModelSpace If element.EntityType = 42 Then 'Test if it is an xref ' ListXref = ListXref & ", " & element.Name ' GoTo 10 'If LCase(Left(element.Name, 2)) = "xr" Then' MsgBox element.Name