六合开奖结果现场直播欢迎诸位!收藏本站注 册登 陆
常用三肖中特马:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 三肖中特马 > 文章页

用Vba实现选择单元格的表名,自动显示相应Excel数据表的数据

Admin | 2008-6-15 14:02:43 | ReadNums | 11475 | 标签 六合开奖结果现场直播 | 打印本页
     

        今天早上,闲来无事,忽然ExcelQQ群传来“嘀嘀嘀…”的“SOS”声音!

        慌忙打开一看,有个哥们遇到难题了,在请求技术支援呢!这种事情,哪少得了俺的份,马上分析问题,着手入手!

        他的数据结构是这样的:他的Excel工作薄中有很多个工作表,从第二个工作表一直到最后一个工作表,保存的是员工财务数据;而第一张表是空的,这是他预先设计好的!

        他的意图是:将第二到最后一张工作表的名称填入到第一张工作表中的第一行的相应单元格,然后呢,选择第一张工作表单元格中已填充好的工作表名,就显示该工作表的数据到第一张工作表中(数据显示从第一张工作表第二行开始),以此达到方便快捷的目的,省得工作表多了,老选择工作表来查看数据也不太方便,据说他快被“烦”死洛!

        从理论上来讲,俺已知其意,因此,迅速构建了一个工作薄,填充些测试数据,立马帮他的忙!

        如下图:

        上图中,请仔细观察;第一张工作表的名称俺改为“Total“,第二张、第三张…的名称依次为2004、2005……

        上述的工作表名称,阁下可自行修改,无论改为哪种都行,都能达到目的!

        在一表即Total表的第一行,分别显示了其他工作表的名称,当然了,这些名称不是自己输入的,而是程序自动填充的,要是手动输入的,工作表一多,那也得把人烦死!

        下面,我们再来看一下部分表格的数据吧!

        如下图,为2004表的数据;   

        如下图,为Sheet1表的数据

        所有表格的数据(除第一张工作表外),输入无任何限制,你爱怎么输入数据就怎么输入;该功能均可实现,因为这是一种通用的功能!

        要想实现效果,下面就得仔细看文章了!

        首先,选择Total表,然后按快捷组合键“Alt+F11”,打开“Microsoft Visual Basic”窗口;在窗口中,找到如下图的位置!

        上图中,我们选择“Sheet1 (Total)“,点击右键,执行“查看代码”;之后,会在窗口的右边出现类似下图的代码编写窗口;

        根据上图红线圈住的部分,选择好相应的选项;选择好了,这个时候,会在代码输入框中填充好如上图的代码;如果您的无法进行选项的选择,直接输入代码即可;

        注意了,如下这个:

        Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        End Sub

        不能错哦!

        之后,就在里面输入代码,直至完成如下图的代码!

        上图,是最终的完整的代码!

        都好了,直接点击“运行”按钮进行运行,返回Excel窗口,选择第一个工作表,在第一行中选择已填充工作表名称的单元格,那么,就在其下方,自动填写该表的数据了!

        如上图,为部分效果图!

        知识扩展:下面对部分代码进行说明!

        Dim TableCount As Integer
        TableCount = Worksheets.Count
        For k = 2 To TableCount
            Worksheets(1).Cells(1, k) = Worksheets(k).Name
        Next
        '上述代码的功能是:将其他工作表的名称填充到第一个工作表的第一行自第二列及之后的单元格中;

        If Target.Row = 1 And Target.Columns.Count <= 1000 And Target.Column >= 2 Then
          'MsgBox "你选中了:" & Target.Text
          Dim SheetID As Integer
          SheetID = Target.Column
          If Target.Text = "" Then
          Exit Sub
          End If
        End If
        '上述代码的功能是,读取鼠标所点击的第一表第一行除第一个单元格之外的任何一个单元格所在的列的序号,或称索引!

        好了,就讲到这里吧,有点累了,希望本文对您有用,欲转载文章的客官请注明本文的出处,谢谢!


问题未解决:在线咨询我要在线咨询问题

港彩高手心水论坛

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日