excel VBA中如何选中行数不确定的区域
请高手帮助。我有很多格式相同的数据表格,想选中其中一个区域(F6:O最后一行),但每个表格的行数不同。如何在VBA中编写,谢谢!!我是初学者,呵呵。最后一行的值如何计算,...
请高手帮助。
我有很多格式相同的数据表格,想选中其中一个区域(F6:O最后一行),但每个表格的行数不同。如何在VBA中编写,谢谢!!
我是初学者,呵呵。最后一行的值如何计算,另外RANGE如何引用变量。 展开
我有很多格式相同的数据表格,想选中其中一个区域(F6:O最后一行),但每个表格的行数不同。如何在VBA中编写,谢谢!!
我是初学者,呵呵。最后一行的值如何计算,另外RANGE如何引用变量。 展开
5个回答
展开全部
用range("o65536").end(xlup).row即可获取o列的最后一个非空单元格的行数
关于此例中用到的End的相关知识:
Range对象有一个End属性,在别人的例子里经常会看到如“[A65536].End(xlUp).Row”这样的语句,这就是End属性的利用。
End属性应用于Range对象,同样也返回一个Range对象。该对象代表包含源区域的区域结尾处的单元格。如果还是不明白,那可以在工作表里试一试,分别按Ctrl+上、下、左、右方向键,看看得到的是什么。End属性返回的单元格就相当于在源单元格按住Ctrl键+上(或下、左、右)方向键所得到的单元格。它的语句格式简单写为:
源区域.End(移动方向)
移动方向可以是:
xlToLeft :向左移动,相当于在源区域按Ctrl+左方向键。
xlToRight:向右移动,相当于在源区域按Ctrl+右方向键。
xlUp:向上移动,相当于在源区域按Ctrl+上方向键。
xlDown:向下移动,相当于在源区域按Ctrl+下方向键。
所以在程序设计的过程中,很多人喜欢用“[A65536].End(xlUp).Row”语句来返回A列的最后一个非空单元格的行号。
如果当前活动工作表的A列填写的是学生的姓名,现在想在表中A列最后一个学生的后面增加一个叫“张三”的学生,则代码为:
ActiveSheet.Cells([A65536].End(xlUp).Row + 1, 1).Value = "张三"
语句 [A65536].End(xlUp).Row + 1中,行号加1的目的是在最后一个非空单元格的下一个单元格里输入数据。需要注意的是:如果A列全为空的话,“[A65536].End(xlUp).Row”这个语句返回的是1。
关于此例中用到的End的相关知识:
Range对象有一个End属性,在别人的例子里经常会看到如“[A65536].End(xlUp).Row”这样的语句,这就是End属性的利用。
End属性应用于Range对象,同样也返回一个Range对象。该对象代表包含源区域的区域结尾处的单元格。如果还是不明白,那可以在工作表里试一试,分别按Ctrl+上、下、左、右方向键,看看得到的是什么。End属性返回的单元格就相当于在源单元格按住Ctrl键+上(或下、左、右)方向键所得到的单元格。它的语句格式简单写为:
源区域.End(移动方向)
移动方向可以是:
xlToLeft :向左移动,相当于在源区域按Ctrl+左方向键。
xlToRight:向右移动,相当于在源区域按Ctrl+右方向键。
xlUp:向上移动,相当于在源区域按Ctrl+上方向键。
xlDown:向下移动,相当于在源区域按Ctrl+下方向键。
所以在程序设计的过程中,很多人喜欢用“[A65536].End(xlUp).Row”语句来返回A列的最后一个非空单元格的行号。
如果当前活动工作表的A列填写的是学生的姓名,现在想在表中A列最后一个学生的后面增加一个叫“张三”的学生,则代码为:
ActiveSheet.Cells([A65536].End(xlUp).Row + 1, 1).Value = "张三"
语句 [A65536].End(xlUp).Row + 1中,行号加1的目的是在最后一个非空单元格的下一个单元格里输入数据。需要注意的是:如果A列全为空的话,“[A65536].End(xlUp).Row”这个语句返回的是1。
展开全部
有许多种方法可以找到最后一个单元格,如使用等:.SpecialCells(xlCellTypeLastCell).Row
Sub test()
Dim r As Range
With ActiveSheet
lastrow = .Cells(.Rows.Count, "O").End(xlUp).Row
End With
Set r = Range("F6:O" & lastrow)
r.Select
End Sub
Sub test()
Dim r As Range
With ActiveSheet
lastrow = .Cells(.Rows.Count, "O").End(xlUp).Row
End With
Set r = Range("F6:O" & lastrow)
r.Select
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以利用range的end属性取得O行最后一行非空单元格
如:
Dim i as Integer
i=sheet1.range("O6536").END(XLUP).ROW
RANGE("F6:O"&i).Select
如:
Dim i as Integer
i=sheet1.range("O6536").END(XLUP).ROW
RANGE("F6:O"&i).Select
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
《用VBA得到EXCEL表格中的行数和列数》
http://hi.baidu.com/%B4%F3%CA%A5%C3%C0%BA%EF%CD%F5/blog/item/e6143c3f2b8182ef54e723cd.html
dim r as range
http://hi.baidu.com/%B4%F3%CA%A5%C3%C0%BA%EF%CD%F5/blog/item/e6143c3f2b8182ef54e723cd.html
dim r as range
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法真的很多
x = WorksheetFunction.CountA(Range("o:o"))
range("f6:o"&x).select
x = WorksheetFunction.CountA(Range("o:o"))
range("f6:o"&x).select
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询