选择列中的第一个连续数据范围

时间:2015-12-22 18:11:21

标签: excel vba excel-vba

我想在每个工作表中,在任何空白之前,只选择并复制B列中连续数据的第一个范围(例如B3:B5,下表中的值为3,5,2)。
值的长度因工作表而异,但我想要的数据总是从单元格“B3”开始 我不希望Heading5或其他列中的任何值。在某些工作表中,没有Heading5及其下方的值 我读了一些关于Intersect和ActiveCell属性的帖子,但我不知道如何应用它们.VBA新手 - 谢谢你的帮助!

A        B        C
Heading1 Heading2 Heading3
2        3        6
3        5        8
4        2        4

Heading4 Heading5 Heading6
24       67       2
25       34       5
4        6        12

2 个答案:

答案 0 :(得分:1)

只是为了给你一个想法,试试:

Columns("B").Find("", Cells(Rows.Count, "B")).Select

这将选择B列中的第一个空白单元。
现在,如果您想要此单元格引用,只需使用:

MsgBox ActiveCell.Address

这将为您提供 $B$6 (假设您的数据从A1开始)。

*注意:您需要将其与代码一起使用。

答案 1 :(得分:1)

找到了一个解决方案,对我有用:

Dim last As Long
Dim rng As Range
Dim I as integer

WS_Count = ActiveWorkbook.Worksheets.Count

For I = 8 to WS_Count

last = Worksheets(I).Cells(3, "B").End(xlDown).Row
Set rng = Worksheets(I).Range("B3:B" & last)

Next I