尝试让数组包含VBA中另一个工作表上列的信息

我对VBA很新,我一直在使用下面的代码重新排列列在nams数组中指定的顺序。

我想要做的不是让列写入代码的列表从另一个工作表的范围中取出列表,以使代码更加灵活,但是我不确定从哪里开始。 任何帮助将不胜感激!

Dim rng As Range Dim i As Integer Dim J As Integer Dim Temp Dim nams As Variant Dim F Dim Dex As Integer nams = Array("RequestCode", "Contact", "OpenDate", "ClosedDate") Set rng = Range("A1").CurrentRegion For i = 1 To rng.Columns.Count For J = i To rng.Columns.Count For F = 0 To UBound(nams) If nams(F) = rng(J) Then Dex = F: Exit For Next F If F < i Then Temp = rng.Columns(i).Value rng(i).Resize(rng.Rows.Count) = rng.Columns(J).Value rng(J).Resize(rng.Rows.Count) = Temp End If Next J Next I 

 Dim nams() As Variant nams = Sheets("Sheet1").Range("A1:A5") 

这将读取指定范围的值到您的nams()数组索引在1,而不是0.请记住,做这个方法总是导致一个二维数组,所以要获得第三个值,例如,你将不得不做一些像nams(3,1)东西。