首页 > 解决方案 > VBA:Excel 中的动态范围 - 查找包含相关数据的最后一列

问题描述

我要从中复制数据的工作簿中有不同的工作表。我可以为每张纸手动写出范围,因为它的大小不应该经常改变。但是,我真的希望它更优雅并循环通过它。问题是,每张纸上的数据可能略有不同,现在我不知道如何找到最后一列。

在不同的工作表上,第一列和第一行始终为空,然后是我想要的数据(其中 4 列以上)。(到目前为止)有三种变体:

  1. 只是我需要的数据的范围。足够简单

    lCol = Cells(2, Columns.Count).End(xlToLeft).Column

  2. 但是,有时,我想要的数据右侧有一个空列,然后是一个包含不相关数据的列:数据结构2

如果这是唯一的情况,我会将我的代码调整为以下内容:

lCol = Cells(2, Columns.Count).End(xlToLeft).End(xlToLeft).Column
If lCol = 2 Then
    lCol = Cells(2, Columns.Count).End(xlToLeft).Column
End If
  1. 不幸的是,我的表格右侧还有一些(不相关的)数据:

数据结构3

我不知道如何解决这个问题。基本上我需要告诉 Excel 选择最大连续范围的代码,即没有空列的范围

编辑:我不知道它是否有帮助,但我在每张纸上寻找的数据周围都有一个边框(它被格式化为表格)

标签: excelvba

解决方案


推荐阅读