用于排序和清除内容的动态数组

问题描述 投票:0回答:2

我已为M2制作了一个数组:Tx - x将在此之前改变相关代码。

我想要做的是为这个数组设置一个'clear contents'函数和'sort'函数(m2:tx)。

我正在努力使阵列DYNAMIC。如果有人可以帮忙。

我相信这将是这样的:

k = sh.Range("A3").End(xlDown).Row 'This will give me the length. 

Dim TaskDates As Range
Dim StartCell  As Range 'First part of Array
Dim EndCell As Range 'End of Array
Set EndCell = Range("T" & 2 + k) 'maybe 2 or 3
Set StartCell = Range("M2")
Set TaskDates = Range(StartCell, EndCell) 'Dynamic Range 

我相信这将有效,但是有一种更简洁的方法。

excel vba excel-vba
2个回答
0
投票

我真的不明白你设定范围的逻辑。

如果您希望以M2开头的范围中的最后一行与A列中最后一个占用的行相同,那么。一般来说

LastRow = Cells(Rows.Count, "A").End(xlUp).Row

所以设置你的范围M2:Tx x = LastRow

Set TaskDates = Range("M2", "T" & Cells(Rows.Count, "A").End(xlUp).Row)

要对范围进行排序,请确定要对其进行排序的方式,然后记录宏。


0
投票

这是一种方式:

Sub MakeRange()
    Dim x As Long, MyDynamicRange As Range
    x = 123
    Set MyDynamicRange = Range("M2:T" & x)
    MsgBox MyDynamicRange.Address(0, 0)
End Sub

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.