![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Option Explicit Dim mdl ' the current model Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "There is no Active Model" End If Dim HaveExcel Dim RQ RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation") If RQ = vbYes Then HaveExcel = True ' Open & Create Excel Document Dim x1 ' Set x1 = CreateObject("Excel.Application") x1.Workbooks.Open "D:/Test.xlsx" x1.Workbooks(1).Worksheets("Sheet1").Activate Else HaveExcel = False End If a x1, mdl sub a(x1,mdl) dim rwIndex dim tableName dim colname dim table dim col dim count 'on error Resume Next For rwIndex = 1 To 50 step 1 With x1.Workbooks(1).Worksheets("Sheet1") 'MsgBox "生成数据表结构共计1 ="+CStr(.Cells(2,2).Value ), vbOK + vbInformation, "表" If .Cells(rwIndex, 1).Value = "" Then Exit For End If If .Cells(rwIndex, 3).Value = "" Then set table = mdl.Tables.CreateNew table.Name = .Cells(rwIndex , 1).Value table.Code = .Cells(rwIndex , 2).Value count = count + 1 Else colName = .Cells(rwIndex, 1).Value set col = table.Columns.CreateNew 'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列" col.Name = .Cells(rwIndex, 1).Value 'MsgBox col.Name, vbOK + vbInformation, "列" col.Code = .Cells(rwIndex, 2).Value col.Comment = .Cells(rwIndex,1).Value col.DataType = .Cells(rwIndex, 3).Value End If End With Next MsgBox "生成数据表结构共计" + CStr(count), vbOK + vbInformation, "表" Exit Sub End sub
代码说明:
1.) For rwIndex = 1 To 50 step 1 此处是定义生成的行数,即字段数量50,可以修改此数
2.) x1.Workbooks.Open "D:/Test.xlsx" 此处是 excel 数据库表结构存入的位置,可以自定义位置和名称
3)Test.xlsx 中 的 “应申报统计”数据库表 结构如下:
应申报统计(表名name) | SB_YSBTJ(表名code) | |
会计制度(准则)代码 | KJZDZZ_DM | CHAR(3) |
是否催报及监控未申报 | SFCBJJKWSB | CHAR(1) |
作废日期 | ZFRQ_1 | DATE |
征收方式代码 | ZSFS_DM | CHAR(3) |
纳税期限代码 | NSQX_DM | CHAR(2) |
税款所属期止 | SKSSQZ | DATE |
税款所属期起 | SKSSQQ | DATE |
月份 | YF | CHAR(2) |
年度 | ND | VARCHAR2(10) |
征收品目代码 | ZSPM_DM | CHAR(9) |
征收项目代码 | ZSXM_DM | VARCHAR2(5) |
登记序号 | DJXH | NUMBER(20) |
纳税申报日期 | NSSBRQ | DATE |
原申报期限 | YSBQX | DATE |
申报期限 | SBQX | DATE |
数据来源标志 | SJLYBZ | CHAR(1) |
征收代理方式代码 | ZSDLFS_DM | CHAR(1) |
行业代码 | HY_DM | VARCHAR2(4) |
修改日期 | XGRQ | DATE |
修改人代码 | XGR_DM | CHAR(11) |
录入日期 | LRRQ | DATE |
申报方式代码 | SBFS_DM | CHAR(2) |
数据归属地区 | SJGSDQ | CHAR(11) |
录入人代码 | LRR_DM | CHAR(11) |
主管税务所(科、分局)代码 | ZGSWSKFJ_DM | CHAR(11) |
主管税务局代码 | ZGSWJ_DM | CHAR(11) |
税收管理员代码 | SSGLY_DM | CHAR(11) |
作废人代码 | ZFR_DM | CHAR(11) |
作废标志 | ZFBZ_1 | CHAR(1) |
应申报统计UUID | YSBTJUUID | VARCHAR2(32) |
数据同步时间 | SJTB_SJ | TIMESTAMP |
税源编号 | SYBH_1 | VARCHAR2(40) |
将上面的代码保存为vbscript保存至 C:\Program Files (x86)\Sybase\PowerDesigner 15\VB Scripts 中,命名为:generate_table_structure_for_excel.vbs
然后在PD菜单 Tool -> Execute Commands-> Edit/Run Script 选择上面所保存的vb script