Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 选择一个范围,直到至少有一列具有数值_Excel_Vba - Fatal编程技术网

Excel 选择一个范围,直到至少有一列具有数值

Excel 选择一个范围,直到至少有一列具有数值,excel,vba,Excel,Vba,我有个问题 我有一个数据表: A B C Type Height Length 1 2 2 2 3 9 3 8 2 2 3 1 0 1 我一直在阅读如何选择该范围,但我无法解决的问题是如何选择上方的范围,直到至少有一列包含数值的行为止。但问题是,范

我有个问题

我有一个数据表:

    A       B       C
   Type   Height Length
    1       2       2
    2       3       9
    3       8       2
            2       3
    1               0
                    1
我一直在阅读如何选择该范围,但我无法解决的问题是如何选择
上方的范围,直到至少有一列包含数值的行为止。但问题是,范围是引用的一部分,Excel假定使用的行数较大,因为许多行是空白的,并且是引用的一部分

所以我的问题是:

在第一行A、B或C列都不包含至少一个数字条目,并且由于范围是引用的一部分,因此使用的行数更大之前,如何选择上述范围

我试过了

Sub Choose()
Dim Lastrow As Integer
Lastrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
MsgBox Lastrow
'Range("A2:C" & Lastrow).Select
End Sub
但是MsgBox返回118,这是因为我要选择的范围是引用的一部分

Sub Sort3()
Dim oneRange As Range
Dim aCell As Range
Worksheets("Analys").Select
Set oneRange = ActiveCell.CurrentRegion.Range("D1")
Set aCell = Range("M10")

oneRange.Sort Key1:=aCell, Order1:=xlDescending, Header:=xlYes
End Sub
有人有主意吗

编辑: 这不起作用,仍然选择空单元格,因为它是引用

Sub Sort3()
Dim oneRange As Range
Dim aCell As Range
Worksheets("Analys").Select
Set oneRange = ActiveCell.CurrentRegion.Range("D1")
Set aCell = Range("M10")

oneRange.Sort Key1:=aCell, Order1:=xlDescending, Header:=xlYes
End Sub
如果您有“参差不齐”的列,如:

并希望获得“所有数据”的范围,然后:


将选择A1:C7

,因为您希望找到
第一行,其中A、B或C列中没有一个包含至少一个数字项
最简单的解决方案是使用循环。如果需要单行解决方案,可以使用
Lastrow=Evaluate(“=MATCH(“”,A:A&B:B&C:C,0)”)
,但速度可能较慢。这一个更快:
Lastrow=Evaluate(“=MATCH(”,A1:A1000&B1:B1000&C1:C1000,0)”)
,但您应该确保
1000
(或任何其他数字)大于lastrow@simoco谢谢,但它仍然选择很少的行数。。。。110而它应该选择118…@加里的学生,这不是问题所在。问题是您的解决方案将选择多行,因为当前区域是一个引用,其中许多行为空。列“参差不齐”,但我不想选择任何没有条目的行。我要选择的最后一行在某些列中至少有一个数据项(字符或非字符):)@user1665355:使用simoco建议的对我的帖子的修复…。不要担心包括空行->它们将与CurrentRegionHm相邻ok。。。然后我想根据一列对所选区域进行排序。。@user1665355:对虚拟数据进行一些实验……让我们知道会发生什么!谢谢大家!这对我有帮助:)