首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

Excel+VBA: usedrange的不足解决思路

2012-05-16 
Excel+VBA: usedrange的不足Excel+VBA: usedrange的不足我们都知道usedrange可以得到已用数据区域,但是什

Excel+VBA: usedrange的不足
Excel+VBA: usedrange的不足
我们都知道usedrange可以得到已用数据区域,但是什么是"已用",如果在某个单元格我我输入了一个空格,usedrange会包含这个单元格,而这是我不想看到的,怎么办?
问题背景:
我处理学生成绩,常常要获取成绩表所占区域,但是由于我要用VBA修理成绩,只想获得实际有成绩的区域,至于成绩矩形区外某地方输了一个空格,不想算在内.

高手们,如何获得成绩表真正占有的区域?

[解决办法]
这是 VBA 代码:

VB code
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _    xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
[解决办法]
楼上的方法貌似一旦遇到空格就停了,因此不一定能选中全部。

要确定使用区域的话也可以这样(没看到你的表格,所以用了个笨方法,我假设你的列数已定,以下函数用来算行数..):

VB code
Function select_range()    Dim i As Long, j As Long, num As Long   '定义几个变量    num = 0 '用来标识空行的个数    i = Application.WorksheetFunction.CountA("A:A") + 100    '此处先调用函数输出A列的非空单元格数,但由于中间可能有空格,所以我再加100,以扩大收索范围,     '您可根据实际情况再作调整......                    '以下通过for循环,把定位的 1 到 i 列依次遍历,如果有连续100行为空则认定下面就没有数据了,     '返回实际列数,从而确定实际区间    For j = 1 To i                If Application.WorksheetFunction.Trim(Sheet1.Range("A" & j)) = "" Then        '此处判断单元格经去空格处理后是否为空,位到a1单元格,算列数从此单元格开始....                        If num = 100 Then                            select_range = j - num                            Else                              num = num + 1                     End If                               Else                     num = 0  '有数,就清空,,,,                 End If    Next j    End Function 

热点排行