簡體   English   中英

將粘貼數據從一張表復制到另一張表,僅選擇過濾數據並維護目標列序列

[英]Copy paste data from one sheet to another and only pick filtered data and maintain target column sequence

我需要使用 excel 宏自動執行將數據從一張表復制到另一張表的步驟。 但以下是我面臨這個要求的問題:

  1. 需要在 scope 數據中復制粘貼,即“數據范圍”上的過濾器 = 是
  2. 源和目標的列順序不同,由於大約有 127 列,因此無法對這部分進行硬編碼。

如果您有方便的代碼或邏輯來實現相同的功能,請提供幫助。

找到了一種簡單的方法來實現這一點,將其發布在這里供其他人使用。

Sub Reorganize_columns()

    Dim v As Variant, x As Variant, findfield As Variant
    Dim oCell As Range
    Dim rng As Range
    Dim iNum As Long
    Dim sht_source As Worksheet, sht_target As Worksheet
    
    
    Set sht_source = ActiveWorkbook.Sheets("Data")
    Set sht_target = ActiveWorkbook.Sheets("Macro")
    
    sht_source.Range("A1").AutoFilter Field:=1, Criteria1:="Yes"
    
    Set rng = sht_target.Range("A1:HS1")
    
    For Each cell In rng
        iNum = iNum + 1
        findfield = cell.Value
        Set oCell = sht_source.Rows(1).Find(What:=findfield, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
        sht_source.Columns(oCell.Column).Copy
        sht_target.Columns(iNum).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    
    Next cell
    
    ActiveWorkbook.Save
    
    MsgBox "Completed"

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM