使用VBA对比数据表名

1)之前收到现场比较紧急的需求,要求对比新旧数据库中的表;(笨方法,仅供参考)

2)现状:

    a.涉及表的数量288个

    b.新旧数据表的名称顺序不一致

    c.需要从数据库中获取所有表名;

    d.需要输出一份新旧数据库表名和对应备注对应的Excel表

    e.具有旧系统的数据库规格说明书

3)操作:

        从数据库规格说明书中获取旧系统的数据库表及对应的备注,拷贝进Excel的Sheet(A_table)中的A列;

       从新数据库中获取所有的表名信息,数据库是Oracle的,执行的查询语句为:

SELECT '--'||b.comments||'data Count:'|| T.NUM_ROWS||'',T.TABLE_NAME FROM USER_TABLES T,user_tab_comments b where t.TABLE_NAME=b.table_name and T.NUM_ROWS!=0 order by  T.NUM_ROWS desc

        接着将查询出来的表拷贝进Excel中Sheet(A_table)中的B列.

         打开Excel菜单栏上的开发工具,点击代码->Visual Basic(或者宏)

打开编辑器,如图:

将以下代码打入模块1中,点击运行。

Sub 宏1()
'
'对比A列和B列的值,如果B列单元格中的值包含在A列中,则将A列单元格复制到C列
'
     For i = 3 To 116
        Range("A" & i).Select
        For j = 3 To 290
             If InStr(Range("A" & i).Value, Range("B" & j).Value) <> 0 Then
                Range("A" & i).Select
                Selection.Copy
                Range("C" & j).Select
                ActiveSheet.Paste
                Exit For
            End If
        Next j
    Next i
    
End Sub

历时20多分钟,输出此表格。笨办法,欢迎一起探讨。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值