excel - 如何在Excel VBA中查找连续数据的单元格?

标签 excel vba office-2007

alt text

给定图像...如果我知道有一些数据从 Range("B3") 开始。
如何找到单元格 E3 之前具有连续数据的单元格?由于 F3 为空白,因此不应考虑 G3 及以后的内容。 结果可以是范围对象 (B3:E3) 或单元格计数(在本例中为 4)。

通过将 B3 设置为事件单元格并执行...

Range(ActiveCell, ActiveCell.End(xlToRight).Count

我确实得到了计数,但是这种方法并不可靠,如果只有 B3 有数据,它就会对单元格进行计数,直到工作表末尾。
当然,这也可以通过循环单元格来实现,但我宁愿使用工作表函数或其他一些有效的方法。

最佳答案

您似乎正在尝试确定从单元格 B3 开始的一行中使用的连续列数。

下面的代码将根据您的数据返回 $B$3:$E$3 和 4 的值。如果只有单元格 B3 有数据,它将返回 $B$3 和 1。

Sub GetDataArea()

Dim strCellToTest As String
Dim rngMyRange As Range
Dim lngColumns As Long

strCellToTest = "B3"

lngColumns = ActiveWorkbook.ActiveSheet.Range("" & strCellToTest).End(xlToRight).Column - 1

If lngColumns >= 256 Then
 Set rngMyRange = ActiveWorkbook.ActiveSheet.Range("" & strCellToTest)
 lngColumns = 1
Else
 Set rngMyRange = ActiveWorkbook.ActiveSheet.Range _
 (strCellToTest & ":" & Range("" & strCellToTest).Offset(0, lngColumns - 1).Address)
End If

MsgBox "Columns: " & lngColumns & vbCr & vbLf & "Range: " & rngMyRange.Address

End Sub

关于excel - 如何在Excel VBA中查找连续数据的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592536/

相关文章:

r - 将一个大的 xlsx 文件导入到 R 中?

excel - 通过在行中查找值来获取列

excel - 删除值为 '#NAME?' 或引用 '=#NAME?' 的命名范围

c# - 如何创建 word 文档对象的克隆?

user-interface - 不需要右键单击的上下文菜单示例

c# - 在 Outlook 2007 中获取当前用户的电子邮件地址

c# - 在 C# 中使用 OLEDB 读取受密码保护的 excel 文件

excel - VBA 运行时错误 -214724809 (80070057)

VBA - 试图打开文件夹中的所有工作簿

string - 如何在字符串vba中包含引号