【问题标题】:Vba, select a dynamic matrixvba,选择一个动态矩阵
【发布时间】:2014-04-09 15:49:12
【问题描述】:

我有一个包含如下示例数据矩阵的工作表:

这个数组是动态生成的,所以..我知道左上角(非空)单元格的坐标,我想找到右上角(非空)单元格的坐标

第一个解决方案是使用 .offset 并检查右侧的每个单元格,如果它不为空,但我觉得这种方式不好。我想找到更好的方法,更优化。

它存在吗?

【问题讨论】:

    标签: arrays excel vba dynamic


    【解决方案1】:

    在您的情况下,您可以使用CurrentRegion 属性:

    Sub test()
        With Range("B5").CurrentRegion            
            MsgBox .Address 'address of entire matrix            
            MsgBox .Cells(.Rows.Count, .Columns.Count).Address 'bottom right cell
        End With
    End Sub
    

    【讨论】:

    • 真的很感谢 Simoco 和 Gary =) 最后一个问题,是否有允许定义区域类型的“自定义 .currentRegion”?我的意思是,如果我的数组充满了整数,并且在它周围有字符串单元格。有没有办法只选择“整数区域”?
    • 不,很遗憾没有。代码中应该有一些额外的逻辑(例如循环遍历一行中 currentRegion 的值以确定字符串值在哪一列开始和结束)
    【解决方案2】:

    如果数据与您发布的一样(从 B5 开始的孤立块)。那么:

    Sub dural()
        Dim r As Range
        Set r = Range("B5").CurrentRegion
        nLastColumn = r.Columns.Count + r.Column - 1
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 2020-08-31
      • 1970-01-01
      • 2014-03-04
      • 2016-01-30
      • 2011-12-30
      • 1970-01-01
      • 2015-05-20
      相关资源
      最近更新 更多