设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2860|回复: 2
打印 上一主题 下一主题

[求助]如何自动查找工作表的数据范围?

[复制链接]
跳转到指定楼层
1#
发表于 2005-7-22 00:15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近对excel的宏命令很感兴趣,但发现要掌握很不容易,只能小打小闹地编些小程序,希望通过论坛提高我的编程水平,也希望大虾们能两肋插刀,帮小弟一把,谢谢啦![em01]

在编宏命令时,经常要访问一些工作表的数据,可不同的工作表数据范围有大有小,怎样才能自动捕捉有效的数据范围呢?我的思路是:

1.先用ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select来捕捉工作表数据的最后一行;

2.从Cells(1,1)开始逐行逐列查找有数据的单元格(因为有些数据不一定从第一行第一列开始),直到查到不为空的单元格为止,选择该单元格;

3.用ActiveCell.CurrentRegion.Select 捕捉由空白行和空白列所包围的单元格区域。

编了一个子程序,不过觉得方法不简练,大虾们是否还有更好得更简单的程序呢? 请大虾们指正。

Sub SeekDate()

    '子程序,查询工作表中数据的范围Range(Cells(Row1st,Col1st),Cells(Rowend,Colend))

    'Row1st 数据区域中第一行的行号

    'Col1st 数据区域中第一列的列号

    'Rowend 数据区域中最后一行的行号

    'Colend 数据区域中最后一列的列号

   

    K = 1:  Row1st = 0: Col1st = 0: Rowend = 0: Colend = 0: Z = 1: RowNum = 0: ColNum = 0

   

        ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select

        ColNum = ActiveCell.Column

        RowNum = ActiveCell.Row

            

        Do Until K = RowNum

            Z = 1

            Do Until Z = ColNum

                If Trim(Cells(K, Z)) <> "" Then

                ActiveSheet.Cells(K, Z).Select

                ActiveCell.CurrentRegion.Select

                Z = ColNum

                Row1st = Selection.Rows.Row

                Col1st = Selection.Columns.Column

                Rowend = Selection.Rows(Selection.Rows.Count).Row

                Colend = Selection.Columns(Selection.Columns.Count).Column

                K = RowNum - 1

               

                Else: Z = Z + 1

                End If

            Loop

            K = K + 1

        Loop

   

End Sub



此程序还有几个问题:

1.当工作表是空白工作表时,就会出错;

2.当工作表的表头有标题时,就会在标题和数据行之间空出一行空白行(我们单位的excel表格经常这样设置的),那么该程序只能捕捉到标题,而查找不到下面的数据,怎样才能解决这些问题呢?

小弟才疏学浅,只有拜托各位帮帮忙了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-7-22 17:50:00 | 只看该作者
ActiveSheet.UsedRange.Select

'选定活动工作表中已经使用的范围

'然后,在这个SELECTION里面进行相关操作
3#
 楼主| 发表于 2005-7-24 05:39:00 | 只看该作者
好的,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-11 04:22 , Processed in 0.123610 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表