EXCEL:从一张纸张移动/复制/删除数据(条件)到另一张纸张

时间:2015-04-07 14:43:14

标签: excel excel-vba vba

我的任务如下:

  1. 将数据从Sheet-1移动到Sheet-2 (条件:来自哪个数据 A栏,以88017开头)(或)

  2. 将数据从Sheet-1复制到Sheet-2 (条件:来自哪个数据 A栏,以88017开头)(或)

  3. 从工作表1中删除数据(条件:A列中的哪些数据, 从88017开始

    Sheet 1 :                             Sheet 2 : (result)
               A | B                             A | B
    Phone Number | Name               Phone Number | Name
    88017605020  | ABCD               88017605020    | ABCD
    88018605020  | EFGH               88017605020    | IJKL
    88017605020  | IJKL               88017605020    | MNOP
    88017605020  | MNOP               88017605020    | UVWX
    88016605020  | QRST               88017605020    | ASDD
    88017605020  | UVWX
    88015605020  | YZA
    88017605020  | ASDD
    88016605020  | DEED
    
  4. 如何在Excel中执行此操作?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。您可以使用以下内容进行复制,标记和删除。

public sub CopyRowsToSheet2()
  dim sws as worksheet
  dim tws as worksheet
  dim aCell as range
  dim lRow as long
  lrow = 2
  with thisworkbook
    set sws = .sheets("Sheet1")
    set tws = .sheets("Sheet2")
    for each acell in intersect(sws.usedrange, sws.Range("A1").entirecolumn)
      if acell.value = "88017605020" then
        acell.entirerow.copy tws.Range("A" & lRow)
        acell.value = "XXXX"    'Mark to later delete
        lrow = lrow + 1
      endif
    next acell
   'Loop bottom to top to delete marked rows.
   for lrow = sws.usedrange.rows.count to 1 step -1
      if acell.value = "xxxx" then
        sws.range("A" & lrow).delete
      endif
    next lrow
exit sub