基础问题,请大侠们帮忙呀
为什么我用VBA清除了前5行的内容,但没有删除行,然后我再用VBA检测有效行,仍然是前5行有效,而且VBA会从第6行开始写入数据,但前面5行都是空的,请高手们帮忙呀
[解决办法]
个人删数据的语句是
1.找到要删除的行-X
2。做循环X行到倒数第2行-N-1
3.使得X=X+1行的数据,递推得N=N-1行
我也是新人,希望对你有帮助
[解决办法]
你是想删除前5行,还是清空前5行,请选择对正确的方法。
如果是删除从X行开始的N行,vba代码如下:
'删除从X行开始的N行Rows(X & ":" X + N - 1).Delete Shift:=xlUp'删除从1行开始的5行Rows("1:5").Delete Shift:=xlUp
[解决办法]
TO 金色年华:从现象推断你代码中应该是使用了USEDRANGE来确定当前有数据的区域,在工作表内容更新时,USEDRANGE取得的结果某些时候不正确,这是从Excel 2003(没有研究过以前版本)就有的BUG,但是到2010仍然存在这个问题,请看下面的演示:
工作表中仅在A列的A1:A5有数据,运行下面的代码,根据我的注释,可以很清楚看到这个BUG,所以定位最后单元格时,尽量不要使用USEDRANGE.
Sub Demo() With ActiveSheet.UsedRange ' 结果是 A1:A5 -- 正确 Debug.Print .Address(0, 0) ' 结果是 5 -- 正确 Debug.Print [a65535].End(xlUp).Row ' 删除两行 Range("4:5").ClearContents ' 结果是 3 -- 正确 Debug.Print [a65535].End(xlUp).Row ' 结果是 3 -- 正确 Debug.Print ActiveSheet.UsedRange.Cells.Count ' 结果是 5 -- 正确 Debug.Print .Address(0, 0) End WithEnd Sub