使用excel VBA对整行进行排序

时间:2014-10-30 11:35:49

标签: excel vba sorting excel-vba row

我正在创建一个客户端寄存器,可以使用按钮添加客户端。我还有一个排序功能,允许我在 klantnr 上对它们进行排序。但问题是每当我使用sort函数时它只对 klantnr 进行排序,并且从表单提供的附加信息保持不变。例如,这是我的用户形式:

http://puu.sh/cw94k/ebf4510a24.png

这是我的excel表:

http://puu.sh/cw9nc/3a8e19a989.png

当我添加另一行时,它会对 klantnr 进行排序,但不会使用其他值,例如 Naam Adres 。因此,它需要对 klantnr 进行排序并使用其他信息

这是我的代码:

Private Sub btn_Toevoegen_Click()
   Dim laatsteKlantNummer As Integer

Range("B4:B13").End(xlDown).Select
laatsteKlantNummer = ActiveCell.Value
ActiveCell.Offset(1, 0).Value = txtKlant + 0
ActiveCell.Offset(1, 1).Value = txtNaam
ActiveCell.Offset(1, 2).Value = txtAdres
ActiveCell.Offset(1, 3).Value = txtWoonplaats
ActiveCell.Offset(1, 4).Value = txtContact
Me.Hide
Range("B4:B13").Sort Key1:=Range("B4:B13"), Order1:=xlAscending
End Sub

1 个答案:

答案 0 :(得分:2)

使用工作表的Sort对象而不是范围对象中的对象:

ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B4")
ActiveSheet.Sort.SetRange Range("B4:F13")
ActiveSheet.Sort.Apply

在那里,您可以使用SetRange方法不仅定义键列,还可以定义您想要分拣的其他列