2

如果你们可以提供帮助,请向某人提出一个非常快速的问题!

我需要一个宏来将单元格 A1 和 B1 中的数据从 Sheet1 复制到 sheet2 中 A:B 底部的最后一个未使用的单元格中,然后按 sheet2 中 A 列中的最低数字排序。

基本上我有一个主电话列表,而不是让人们在整个列表上松散并添加东西,我宁愿他们在 Sheet1 中写下新号码和姓名,然后自动添加到 Sheet2 的底部,然后再次排序编号顺序。

4

1 回答 1

1

如果 Sheet1 中的数据从第 1 行开始,则下面的代码会将数据复制到当前数据下方的 Sheet2 并对其进行排序

Sub TransferOver()
Application.ScreenUpdating = False
    Dim src As Worksheet, trgt As Worksheet
    Set src = Sheets(1): Set trgt = Sheets(2)
    Dim sr As Range, tr As Range, i As Long

    ' 1 is the first row of data
    For i = 1 To src.Range("A" & Rows.Count).End(xlUp).Row
        Set sr = src.Range("A" & i)
        Set tr = trgt.Range("A" & trgt.Range("A" & Rows.Count).End(xlUp).Row + 1)
        tr = sr
        tr.Offset(0, 1) = sr.Offset(0, 1)
        Set tr = Nothing
        Set sr = Nothing
    Next i

    trgt.Activate
    trgt.Sort.SortFields.Add Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With trgt.Sort
        .SetRange Range("A2:B" & trgt.Range("A" & Rows.Count).End(xlUp).Row)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Application.ScreenUpdating = True
End Sub
于 2013-09-06T08:47:18.047 回答