利用PowerDesigner反向生成DB设计文档

从开发流程上来说,通常是先做设计书,在进行开发。

但是还是有很多项目由于各种各样的原因,需要后期补设计书。

本文的所述的方式是,通过PowerDesigner直连Mysql数据库(以此为例)。将DB结构导入到PowerDesigner中,而后通过vbs脚本,逆向生成Execl的DB设计书。

第一步:连DB。

关于 ODBC连接的配置方式

参考:https://blog.csdn.net/weixin_42517649/article/details/114475744

第二步:引入表结构之后,会发现不显示字段中文名

第三步:执行以下操作,先调出 code列

勾选Code

 第四步:执行VBS,将code列转成comment的值

Comment2Name.vbs代码如下
 

Option   Explicit 
ValidationMode   =   True 
InteractiveMode   =   im_Batch
 
Dim   mdl   '   the   current   model
'   get   the   current   active   model 
Set   mdl   =   ActiveModel 
If   (mdl   Is   Nothing)   Then 
      MsgBox   "There   is   no   current   Model " 
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then 
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. " 
Else 
      ProcessFolder   mdl 
End   If
Private   sub   ProcessFolder(folder) 
On Error Resume Next
      Dim   Tab   'running     table 
      for   each   Tab   in   folder.tables 
            if   not   tab.isShortcut   then 
                  tab.name   =   tab.comment
                  Dim   col   '   running   column 
                  for   each   col   in   tab.columns 
                  if col.comment="" then
                  else
                        col.name=   col.comment 
                  end if
                  next 
            end   if 
      next
      Dim   view   'running   view 
      for   each   view   in   folder.Views 
            if   not   view.isShortcut   then 
                  view.name   =   view.comment 
            end   if 
      next
 
      '   go   into   the   sub-packages 
      Dim   f   '   running   folder 
      For   Each   f   In   folder.Packages 
            if   not   f.IsShortcut   then 
                  ProcessFolder   f 
            end   if 
      Next 
end   sub

 

运行后效果

使用导出脚本

 

自行创建一个.vbs文件即可。

Option Explicit
   Dim rowsNum
   rowsNum = 0
'-----------------------------------------------------------------------------
' Main function
'-----------------------------------------------------------------------------
' Get the current active model
    Dim Model
    Set Model = ActiveModel
    If (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) Then
       MsgBox "The current model is not an PDM model."
    Else
      ' Get the tables collection
      ' 创建EXCEL APP
      dim beginrow
      DIM EXCEL, BOOK, SHEETLIST ,FRISTSHEET,SECONDSHEET
      set EXCEL = CREATEOBJECT("Excel.Application")
      set BOOK = EXCEL.workbooks.add(-4167) ' 创建工作簿
      '封面页
      BOOK.sheets(1).name ="封面"                     'Sheet名称
      set FRISTSHEET = BOOK.sheets("封面")     'Sheet对象
            output "[line(21) info]: book.Sheet: " + FRISTSHEET.Name
      '编辑封面页
      ShowFristSheet FRISTSHEET
      
      BOOK.sheets.add,BOOK.Sheets(1)               ' 添加工作表Sheet
      BOOK.sheets(2).name ="改版履历"                     'Sheet名称
      set SECONDSHEET = BOOK.sheets("改版履历")     'Sheet对象
            output "[line(21) info]: book.Sheet: " + SECONDSHEET.Name
           
      ShowSecondSheet SECONDSHEET
            
      BOOK.sheets.add,BOOK.Sheets(2)               ' 添加工作表Sheet
      BOOK.sheets(3).name ="目录"                     'Sheet名称
      set SHEETLIST = BOOK.sheets("目录")     'Sheet对象
            output "[line(21) info]: book.Sheet: " + SHEETLIST.Name
             
      BOOK.sheets.add,BOOK.Sheets(BOOK.Sheets.Count)               ' 添加工作表Sheet
            output "[line(24) info]: book.Sheet: " + BOOK.Sheets(1).Name
      'EXCEL.workbooks(1).sheets(1).name ="表结构"     'Sheet1名称
      'set SHEET = EXCEL.workbooks(1).sheets("表结构") 'Sheet1对象
        
      ShowTableList Model, SHEETLIST
              
      ShowProperties Model, BOOK
       
            output  "[line(32) info]: Select: " + BOOK.Sheets(BOOK.Sheets.count).name          
      BOOK.Sheets(1).Select     '选择默认打开的工作表
      EXCEL.visible = true  ' 弹出Excel工作簿
      '不显示网格线
            'EXCEL.ActiveWindow.DisplayGridlines = True
 End If
              
'-----------------------------------------------------------------------------
' Show properties of tables
'-----------------------------------------------------------------------------
Sub ShowProperties(mdl, book)
   ' Show tables of the current model/package
   rowsNum=0
   beginrow = rowsNum+1
     output "[line(46) info]:   tables count : " &mdl.tables.count
      
   
   output "[line(50) info]: 表结构 begin ========================"
   ' For each table
   Dim tab  ' Power Tables
   For Each tab In mdl.tables
      ShowTable mdl,tab,book
      EXCEL.visible = true
 
       
   Next
    
   output "[line(58) info]: 表结构 end !Sheet totals is : " & book.Sheets.count
End Sub
 
'-----------------------------------------------------------------------------
' Show table properties
'-----------------------------------------------------------------------------
Sub ShowTable(mdl, tab, book)
  If IsObject(tab) Then
         Output "输出表 [" + tab.name + UCase(tab.code) + "] 开始"
        rowsNum = 0
        rowsNum = rowsNum + 1   'rowsNum=1,工作表第一行
        Dim sheet
        dim tableName
        set sheet = book.Sheets(book.Sheets.Count)
        
        
        tableName = tab.name
        tableName = replace(tableName,"/","")
        tableName = replace(tableName,"\","")
        tableName = replace(tableName,"?","")
        tableName = replace(tableName,"*","")
        if Len(tab.name) > 30 then
            sheet.name =left(tableName,30)
        else
            sheet.name =tableName
        end if
        
        Dim rangFlag
 
 
      ' Show properties
 
      Output "================================"
      
      sheet.Rows.RowHeight = 15
      
      sheet.Rows(1).RowHeight = 6
      
      rowsNum = rowsNum + 1
      
      sheet.Columns.ColumnWidth = 3
      
      sheet.Columns(1).ColumnWidth = 1
 
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Borders.LineStyle = 1
 
      sheet.Columns.Font.Size = 10
      sheet.Columns.Font.Name = "SimSun"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Font.Size = 10.5
      
 
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).HorizontalAlignment = -4108
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).weight = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).weight = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).weight = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).weight = 3
 
      sheet.cells(rowsNum, 2) = "####公司"
      sheet.cells(rowsNum, 2).Interior.ColorIndex=35
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+1, 8)).Merge
      sheet.cells(rowsNum, 9) = "系统名"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "子系统名"
      sheet.cells(rowsNum, 13).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "####项目-DB设计书"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum+1, 30)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 9) = "####"
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "####"
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 2) = "版 数"
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = "章 节"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "改版日"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "改版者"
      sheet.cells(rowsNum, 21).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = "作成日"
      sheet.cells(rowsNum, 24).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "作成者"
      sheet.cells(rowsNum, 28).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      
      rowsNum = rowsNum + 1
      sheet.cells(rowsNum, 2) = "V1.0"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = tab.name
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "####"
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "####"
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      
      rowsNum = rowsNum + 1
      
      
 
      sheet.Rows(rowsNum).RowHeight = 6
 
      rowsNum = rowsNum + 1
 
      sheet.cells(rowsNum, 2) = "表名(英文)"
      '对齐
      sheet.cells(rowsNum, 2).HorizontalAlignment = -4108
      '背景色
      sheet.cells(rowsNum, 2).Interior.ColorIndex=35
      '合并单元格
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 5)).Merge
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 5)).Borders.LineStyle = "1"
 
      sheet.cells(rowsNum, 6) = UCase(tab.code)
      sheet.Range(sheet.cells(rowsNum, 6),sheet.cells(rowsNum, 14)).Merge
      sheet.Range(sheet.cells(rowsNum, 6),sheet.cells(rowsNum, 14)).Borders.LineStyle = "1"
 
      sheet.cells(rowsNum, 15) = "表名(中文)"
      sheet.cells(rowsNum, 15).Interior.ColorIndex=35
      '对齐
      sheet.cells(rowsNum, 15).HorizontalAlignment = -4108
      sheet.Range(sheet.cells(rowsNum, 15),sheet.cells(rowsNum, 19)).Merge
      sheet.Range(sheet.cells(rowsNum, 15),sheet.cells(rowsNum, 19)).Borders.LineStyle = "1"
      
      sheet.cells(rowsNum, 20) = tab.name
      sheet.Range(sheet.cells(rowsNum, 20),sheet.cells(rowsNum, 30)).Merge
      sheet.Range(sheet.cells(rowsNum, 20),sheet.cells(rowsNum, 30)).Borders.LineStyle = "1"
 
      'sheet.cells(rowsNum, 10) = "封面"
      
      'sheet.cells(rowsNum, 11) = ""
      '高度
      'sheet.Rows(1).RowHeight = 30
      
      
      
      rowsNum = rowsNum + 1
 
      '对齐
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).HorizontalAlignment = -4108
      
      sheet.cells(rowsNum, 2) = "No"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 2)).Borders.LineStyle = "1"
 
      sheet.cells(rowsNum, 3) = "Field"
      
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 8)).Merge
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 8)).Borders.LineStyle = "1"
 
      sheet.cells(rowsNum, 9) = "Comment"
 
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 14)).Merge
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 14)).Borders.LineStyle = "1"
      
      sheet.cells(rowsNum, 15) = "Type"
      sheet.Range(sheet.cells(rowsNum, 15),sheet.cells(rowsNum, 18)).Merge
      sheet.Range(sheet.cells(rowsNum, 15),sheet.cells(rowsNum, 18)).Borders.LineStyle = "1"
      sheet.cells(rowsNum, 19) = "Not Null"
      sheet.Range(sheet.cells(rowsNum, 19),sheet.cells(rowsNum, 20)).Merge
      sheet.Range(sheet.cells(rowsNum, 19),sheet.cells(rowsNum, 20)).Borders.LineStyle = "1"
 
      sheet.cells(rowsNum, 21) = "PK"
      
      
      sheet.cells(rowsNum, 22) = "Index1"
      
      sheet.Range(sheet.cells(rowsNum, 22),sheet.cells(rowsNum, 23)).Merge
      sheet.Range(sheet.cells(rowsNum, 22),sheet.cells(rowsNum, 23)).Borders.LineStyle = "1"
      
      sheet.cells(rowsNum, 24) = "Index2"
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 25)).Merge
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 25)).Borders.LineStyle = "1"
      
      
      
      sheet.cells(rowsNum, 26) = "Default"
      sheet.Range(sheet.cells(rowsNum, 26),sheet.cells(rowsNum, 27)).Merge
      
      sheet.cells(rowsNum, 28) = "remark"
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Interior.ColorIndex=35
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders.LineStyle = "1"
 
      '设置边框
 
      Dim col ' running column
 
      Dim colsNum
 
      colsNum = 0
 
      Dim fristDataRows
      
      fristDataRows = rowsNum + 1
         
      for each col in tab.columns
         
         rowsNum = rowsNum + 1
         
         colsNum = colsNum + 1
 
         sheet.cells(rowsNum, 2) = colsNum
         sheet.cells(rowsNum, 2).HorizontalAlignment = 1
         sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 2)).Borders.LineStyle = "1"
         sheet.cells(rowsNum, 3) = col.code
         sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 8)).Merge
         sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 8)).Borders.LineStyle = "1"
 
         sheet.cells(rowsNum, 9) = col.name
         sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 14)).Merge
         sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 14)).Borders.LineStyle = "1"
         
         sheet.cells(rowsNum, 15) = col.datatype
         sheet.Range(sheet.cells(rowsNum, 15),sheet.cells(rowsNum, 18)).Merge
         sheet.Range(sheet.cells(rowsNum, 15),sheet.cells(rowsNum, 18)).Borders.LineStyle = "1"
         
         If col.Mandatory = true Then
            sheet.cells(rowsNum, 19) = "Y"
         Else
            sheet.cells(rowsNum, 19) = " "
         End If
         sheet.Range(sheet.cells(rowsNum, 19),sheet.cells(rowsNum, 20)).Merge
         sheet.Range(sheet.cells(rowsNum, 19),sheet.cells(rowsNum, 20)).Borders.LineStyle = "1"
      
         If col.Primary = true Then
            sheet.cells(rowsNum, 21) = "○"
         Else
            sheet.cells(rowsNum, 21) = " "
         End If
         sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 21)).Borders.LineStyle = "1"
 
 
         sheet.Range(sheet.cells(rowsNum, 22),sheet.cells(rowsNum, 23)).Merge
         sheet.Range(sheet.cells(rowsNum, 22),sheet.cells(rowsNum, 23)).Borders.LineStyle = "1"
 
         sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 25)).Merge
         sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 25)).Borders.LineStyle = "1"
 
         sheet.Range(sheet.cells(rowsNum, 26),sheet.cells(rowsNum, 27)).Merge
         sheet.Range(sheet.cells(rowsNum, 26),sheet.cells(rowsNum, 27)).Borders.LineStyle = "1"
 
         sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
         sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Borders.LineStyle = "1"
 
         'sheet.cells(rowsNum, 10) = col.name
         sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).LineStyle = 3
         sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).weight = 1
         sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(9).LineStyle = 3
      next
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows, 30)).Borders(8).LineStyle = 1
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(9).LineStyle = 1
      '设置列宽和自动换行
 
 
       sheet.Columns(1).WrapText =true
 
       sheet.Columns(2).WrapText =true
 
       sheet.Columns(10).WrapText =true
       
       'sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,11)).Borders.LineStyle = "1"       
 
      'sheet.Range(sheet.cells(rowsNum-colsNum+1,4),sheet.cells(rowsNum,8)).Borders.LineStyle = "2"
 
      rowsNum = rowsNum + 1
      
        If book.Sheets.count-3 < mdl.tables.count Then book.Sheets.Add,book.Sheets(book.Sheets.Count)  
         
  End If
     
End Sub
 
 
 
Function Format_Time(s_Time, n_Flag)
	Dim y, m, d, h, mi, s
	Format_Time = ""
	If IsDate(s_Time) = False Then Exit Function
	y = cstr(year(s_Time))
	m = cstr(month(s_Time))
	If len(m) = 1 Then m = "0" & m
	d = cstr(day(s_Time))
	If len(d) = 1 Then d = "0" & d
	h = cstr(hour(s_Time))
	If len(h) = 1 Then h = "0" & h
	mi = cstr(minute(s_Time))
	If len(mi) = 1 Then mi = "0" & mi
	s = cstr(second(s_Time))
	If len(s) = 1 Then s = "0" & s
	Select Case n_Flag
		Case 1
			' yyyy-mm-dd hh:mm:ss
			Format_Time = y & "-" & m & "-" & d  & " "& h  &":" &  mi  &":" & s
		Case 2
			' yyyy-mm-dd
			Format_Time = y & "-" & m & "-" & d
		Case 3
			' hh:mm:ss
			Format_Time = h & ":" & mi & ":" & s
		Case 4
			' yyyy年mm月dd日
			Format_Time = y & "年" & m & "月" & d & "日"
		Case 5
			' yyyymmdd
			Format_Time = y & m & d
	End Select
End Function
 
'-----------------------------------------------------------------------------
' Show List Of Table
'-----------------------------------------------------------------------------
Sub ShowTableList(mdl, sheet)
   ' Show tables of the current model/package
   Dim rowsNum
   dim fristDataRows
      rowsNum=1
   output "[line(131) info]: 目录程序 begin"
   
   
      sheet.Rows.RowHeight = 15
      
      sheet.Rows(1).RowHeight = 6
      
      rowsNum = rowsNum + 1
      
      sheet.Columns.ColumnWidth = 3
      
      sheet.Columns(1).ColumnWidth = 1
 
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Borders.LineStyle = 1
 
      sheet.Columns.Font.Size = 10
      sheet.Columns.Font.Name = "SimSun"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Font.Size = 10.5
      
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).HorizontalAlignment = -4108
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).weight = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).weight = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).weight = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).weight = 3
 
      sheet.cells(rowsNum, 2) = "####公司"
      sheet.cells(rowsNum, 2).Interior.ColorIndex=35
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+1, 8)).Merge
      sheet.cells(rowsNum, 9) = "系统名"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "子系统名"
      sheet.cells(rowsNum, 13).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "####项目-DB设计书"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum+1, 30)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 9) = "####"
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "####平台"
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 2) = "版 数"
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = "章 节"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "改版日"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "改版者"
      sheet.cells(rowsNum, 21).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = "作成日"
      sheet.cells(rowsNum, 24).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "作成者"
      sheet.cells(rowsNum, 28).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      
      rowsNum = rowsNum + 1
      sheet.cells(rowsNum, 2) = "V1.0"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = "目录"
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "####"
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "####"
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      rowsNum = rowsNum + 1
      fristDataRows = rowsNum + 1
      
      sheet.Rows(rowsNum).RowHeight = 6
      
      rowsNum = rowsNum + 4
      sheet.cells(rowsNum, 3) = "- 目录 -"
   
      rowsNum = rowsNum + 1
      
   ' For each table
   Dim tab
   Dim count
   count  = 0
   For Each tab In mdl.tables
     If IsObject(tab) Then
        rowsNum = rowsNum + 1
        count = count + 1
        sheet.cells(rowsNum, 3) = tab.code
        sheet.cells(rowsNum, 27) = count
        sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 27)).Borders(9).LineStyle = 3
        sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 27)).Borders(9).weight = 1
     End If
   Next
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 30)).Interior.ColorIndex=2
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 2)).Borders(7).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 2)).Borders(7).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows, 30)).Borders(8).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows, 30)).Borders(8).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows, 30),sheet.cells(fristDataRows+60, 30)).Borders(10).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 30),sheet.cells(fristDataRows+60, 30)).Borders(10).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows+60, 2),sheet.cells(fristDataRows+60, 30)).Borders(9).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows+60, 2),sheet.cells(fristDataRows+60, 30)).Borders(9).weight = 3
End Sub
 
 
'-----------------------------------------------------------------------------
' ShowFristSheet
'-----------------------------------------------------------------------------
Sub ShowFristSheet(sheet)
   ' Show tables of the current model/package
   Dim rowsNum
   dim fristDataRows
      rowsNum=1
   output "[line(131) info]: 目录程序 begin"
   
   
      sheet.Rows.RowHeight = 15
      
      sheet.Rows(1).RowHeight = 6
      
      rowsNum = rowsNum + 1
      
      sheet.Columns.ColumnWidth = 3
      
      sheet.Columns(1).ColumnWidth = 1
 
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Borders.LineStyle = 1
 
      sheet.Columns.Font.Size = 10
      sheet.Columns.Font.Name = "SimSun"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Font.Size = 10.5
      
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).HorizontalAlignment = -4108
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).weight = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).weight = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).weight = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).weight = 3
 
      sheet.cells(rowsNum, 2) = "####公司"
      sheet.cells(rowsNum, 2).Interior.ColorIndex=35
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+1, 8)).Merge
      sheet.cells(rowsNum, 9) = "系统名"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "子系统名"
      sheet.cells(rowsNum, 13).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "####项目-DB设计书"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum+1, 30)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 9) = "####"
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "####平台"
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 2) = "版 数"
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = "章 节"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "改版日"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "改版者"
      sheet.cells(rowsNum, 21).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = "作成日"
      sheet.cells(rowsNum, 24).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "作成者"
      sheet.cells(rowsNum, 28).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      
      rowsNum = rowsNum + 1
      sheet.cells(rowsNum, 2) = "V1.0"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = "封面"
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "####"
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "####"
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      rowsNum = rowsNum + 1
      fristDataRows = rowsNum + 1
      
      sheet.Rows(rowsNum).RowHeight = 6
      
      rowsNum = rowsNum + 23
      sheet.cells(rowsNum, 2) = "#### 项目"
      sheet.cells(rowsNum, 2).Font.Size = 28
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+4, 30)).Merge
      sheet.cells(rowsNum, 2).HorizontalAlignment = -4108
      
   
      rowsNum = rowsNum + 8
      sheet.cells(rowsNum, 2) = "- DB设计书 -"
      sheet.cells(rowsNum, 2).Font.Size = 28
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+4, 30)).Merge
      sheet.cells(rowsNum, 2).HorizontalAlignment = -4108
      
      rowsNum = rowsNum + 6
      sheet.cells(rowsNum, 2) = "Ver. 1.0"
      sheet.cells(rowsNum, 2).Font.Size = 28
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+4, 30)).Merge
      sheet.cells(rowsNum, 2).HorizontalAlignment = -4108
   
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 30)).Interior.ColorIndex=2
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 2)).Borders(7).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 2)).Borders(7).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows, 30)).Borders(8).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows, 30)).Borders(8).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows, 30),sheet.cells(fristDataRows+60, 30)).Borders(10).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 30),sheet.cells(fristDataRows+60, 30)).Borders(10).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows+60, 2),sheet.cells(fristDataRows+60, 30)).Borders(9).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows+60, 2),sheet.cells(fristDataRows+60, 30)).Borders(9).weight = 3
End Sub
 
 
'-----------------------------------------------------------------------------
' ShowSecondSheet
'-----------------------------------------------------------------------------
Sub ShowSecondSheet(sheet)
   ' Show tables of the current model/package
   Dim rowsNum
   dim colNum
   dim fristDataRows
      rowsNum=1
      colNum = 1
   output "[line(131) info]: 目录程序 begin"
   
   
      sheet.Rows.RowHeight = 15
      
      sheet.Rows(1).RowHeight = 6
      
      rowsNum = rowsNum + 1
      
      sheet.Columns.ColumnWidth = 3
      
      sheet.Columns(1).ColumnWidth = 1
 
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Borders.LineStyle = 1
 
      sheet.Columns.Font.Size = 10
      sheet.Columns.Font.Name = "SimSun"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).Font.Size = 10.5
      
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 30)).HorizontalAlignment = -4108
 
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+3, 2)).Borders(7).weight = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 30)).Borders(8).weight = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum, 30),sheet.cells(rowsNum+3, 30)).Borders(10).weight = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).LineStyle = 3
      sheet.Range(sheet.cells(rowsNum+3, 2),sheet.cells(rowsNum+3, 30)).Borders(9).weight = 3
 
      sheet.cells(rowsNum, 2) = "####公司"
      sheet.cells(rowsNum, 2).Interior.ColorIndex=35
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum+1, 8)).Merge
      sheet.cells(rowsNum, 9) = "系统名"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "子系统名"
      sheet.cells(rowsNum, 13).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "####项目-DB设计书"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum+1, 30)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 9) = "####"
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 12)).Merge
      sheet.cells(rowsNum, 13) = "####平台"
      sheet.Range(sheet.cells(rowsNum, 13),sheet.cells(rowsNum, 16)).Merge
      
      rowsNum = rowsNum + 1
      
      sheet.cells(rowsNum, 2) = "版 数"
      sheet.cells(rowsNum, 2).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = "章 节"
      sheet.cells(rowsNum, 9).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = "改版日"
      sheet.cells(rowsNum, 17).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "改版者"
      sheet.cells(rowsNum, 21).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = "作成日"
      sheet.cells(rowsNum, 24).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "作成者"
      sheet.cells(rowsNum, 28).Font.Bold=true
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      
      rowsNum = rowsNum + 1
      sheet.cells(rowsNum, 2) = "V1.0"
      sheet.Range(sheet.cells(rowsNum, 2),sheet.cells(rowsNum, 8)).Merge
      sheet.cells(rowsNum, 9) = "改版履历"
      sheet.Range(sheet.cells(rowsNum, 9),sheet.cells(rowsNum, 16)).Merge
      sheet.cells(rowsNum, 17) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 17),sheet.cells(rowsNum, 20)).Merge
      sheet.cells(rowsNum, 21) = "####"
      sheet.Range(sheet.cells(rowsNum, 21),sheet.cells(rowsNum, 23)).Merge
      sheet.cells(rowsNum, 24) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 24),sheet.cells(rowsNum, 27)).Merge
      sheet.cells(rowsNum, 28) = "####"
      sheet.Range(sheet.cells(rowsNum, 28),sheet.cells(rowsNum, 30)).Merge
      rowsNum = rowsNum + 1
      fristDataRows = rowsNum + 1
      
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 30)).Interior.ColorIndex=2
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 2)).Borders(7).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows+60, 2)).Borders(7).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows, 30)).Borders(8).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 2),sheet.cells(fristDataRows, 30)).Borders(8).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows, 30),sheet.cells(fristDataRows+60, 30)).Borders(10).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows, 30),sheet.cells(fristDataRows+60, 30)).Borders(10).weight = 3
      
      sheet.Range(sheet.cells(fristDataRows+60, 2),sheet.cells(fristDataRows+60, 30)).Borders(9).LineStyle = 3
      sheet.Range(sheet.cells(fristDataRows+60, 2),sheet.cells(fristDataRows+60, 30)).Borders(9).weight = 3
      
      
      
      sheet.Rows(rowsNum).RowHeight = 6
      
      
      rowsNum = rowsNum + 4
      sheet.cells(rowsNum, colNum+2) = "'- 改版履历 -"
      rowsNum = rowsNum + 2
      sheet.cells(rowsNum, 3) = "项"
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 4)).Merge
      sheet.cells(rowsNum, 5) = "版数"
      sheet.Range(sheet.cells(rowsNum, 5),sheet.cells(rowsNum, 7)).Merge
      sheet.cells(rowsNum, 8) = "年月日"
      sheet.Range(sheet.cells(rowsNum, 8),sheet.cells(rowsNum, 11)).Merge
      sheet.cells(rowsNum, 12) = "作成者"
      sheet.Range(sheet.cells(rowsNum, 12),sheet.cells(rowsNum, 15)).Merge
      sheet.cells(rowsNum, 16) = "承认者"
      sheet.Range(sheet.cells(rowsNum, 16),sheet.cells(rowsNum, 18)).Merge
      sheet.cells(rowsNum, 19) = "内容"
      sheet.Range(sheet.cells(rowsNum, 19),sheet.cells(rowsNum, 28)).Merge
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 28)).Borders.LineStyle = 1
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 28)).Interior.ColorIndex=15
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 28)).HorizontalAlignment = -4108
      
      rowsNum = rowsNum + 1
      sheet.cells(rowsNum, 3) = "1"
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 4)).Merge
      sheet.cells(rowsNum, 5) = "第1.0版"
      sheet.Range(sheet.cells(rowsNum, 5),sheet.cells(rowsNum, 7)).Merge
      sheet.cells(rowsNum, 8) = Format_Time(Now(),2)
      sheet.Range(sheet.cells(rowsNum, 8),sheet.cells(rowsNum, 11)).Merge
      sheet.cells(rowsNum, 12) = "####"
      sheet.Range(sheet.cells(rowsNum, 12),sheet.cells(rowsNum, 15)).Merge
      sheet.cells(rowsNum, 16) = "####"
      sheet.Range(sheet.cells(rowsNum, 16),sheet.cells(rowsNum, 18)).Merge
      sheet.cells(rowsNum, 19) = ""
      sheet.Range(sheet.cells(rowsNum, 19),sheet.cells(rowsNum, 28)).Merge
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 28)).Borders.LineStyle = 1
      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 28)).Interior.ColorIndex=2
 
   
End Sub

 运行

弹出execl文档,自行保存即可。格式可以根据需求去调整vbs代码。也可以保存后自行编辑execl。

  


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菲斯Face

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值