簡體   English   中英

將過濾后的數據復制到新工作表

[英]Copy Filtered Data to new sheet

從下面過濾的范圍內,我需要修改數據並將其復制到帶有 Excel VBA 的新工作表。

  1. 從右側獲取低於參考值(例如:<= 9)的前 3 個(最大值)值,並將數據 w.r.t 復制到最小扇區代碼。 例如:圖中:9(右側)下面的前3位是2586、1523、124。所以最小的扇區代碼是5,將數據從9-5(扇區代碼)整行復制到一個新的工作表中。
  2. 同樣從左側獲取參考值(9)上方的前 3 個數據,並將數據 w.r.t 復制到最高扇區代碼。 例如:在圖頂部 3 中,9(左側)上方是 1000,356,129,並從 1 中獲取的數據的下方 9-15 復制數據。
  3. 參考值是動態的,將從單元格值中提供。

在此處輸入圖像描述

最終數據看起來像

在此處輸入圖像描述

我對 VBA 很陌生,並且一直在學習。 任何幫助是極大的贊賞。

檢索 VBA 代碼以確定操作的一個非常有用的工具是宏記錄器,在功能區中,Developer -> RecordMacro,執行您的操作並停止錄制,然后您可以檢查為您記錄的操作生成的代碼。 它不是最干凈的代碼,但您可以在那里找到您想要的特定操作的代碼行。 一旦你用你嘗試的代碼遇到了一個具體的問題,你就可以就更具體的事情尋求幫助,而不是期望有人會為你編寫代碼。

希望有幫助

從宏記錄器中,為了對一組值進行排序,它檢索以下代碼:

Sub Macro2()
    ActiveWorkbook.Worksheets("Hoja1").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Hoja1").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Hoja1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

你可以從那里開始。 嘗試使用宏記錄器並記錄導致您想要的 uotput 的用戶操作。 您還可以嘗試記錄一些小步驟,以了解記錄的用戶操作,以隨心所欲地使用。

試試宏記錄器,它是一個了不起的工具,如果你知道你想對用戶操作做什么,你只需要記錄這些操作,然后稍微修復代碼。

希望有幫助。

暫無
暫無

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

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