如何在Excel VBA中将范围导入变量数组并使用排序方法进行排序?

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

我试图在 VBA 中为数组分配一个范围(按值),并对其使用排序方法。我无法在工作表中对其进行排序,因为它基于公式,而 Excel 一直尝试根据公式进行排序。

所以像这样的事情会很简洁,但它不起作用。

Dim TU As Variant
TU = Range("Thermal_Units").Sort key1:=Range("Thermal_Units").Columns(28), order1:=xlAscending, Header:=xlNo

有谁知道如何完成作业和排序?或者我是否被迫编写一个排序例程以在分配后应用?

excel vba sorting
1个回答
0
投票

首先,VBA没有排序方法。对某些内容进行排序的唯一方法是使用工作表函数。

其次,Excel 使用公式正确对范围进行排序。您需要估计这些公式中的参考。它们可以包含对同一行的引用或绝对引用。所有引用的列都应包含在排序范围内。

如果你不想直接在工作表上对范围进行排序,你可以使用Tim提到的Evaluate方法,或者你可以使用下面的代码:

Sub adasd()
  Dim a As Variant
  a = WorksheetFunction.Sort(Range("A1:B4"))
End Sub

它适用于范围(值)的快照。

如果您不喜欢就地对范围进行排序,请注意 SORT 功能。

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