簡體   English   中英

Excel VBA - 根據條件文本字符串將數據范圍從一個工作表傳輸到另一個工作表

[英]Excel VBA - Transfer Data range from one sheet to another based on conditional text string

我是宏的新手,我正在嘗試根據條件文本字符串將數據范圍從一個工作表傳輸到另一個工作表。

“查詢”表(范圍“A5:G1200”)中的數據需要根據“查詢”表中的列范圍“K6:K1200”是文本字符串“Y”還是“N”而轉移到“引號”表。 如果文本為“Y”,我們希望傳輸帶有“y”的數據行,如果文本為“N”,我們不希望傳輸帶“N”的行。

一旦帶有“Y”的數據范圍轉移到“報價”表,我們就需要將數據從“報價”表(范圍“A5:G1200”&和單獨的范圍“L5:M1200”)傳送到“訂單”表單如果“引號”表中的列范圍“N6:N1200”是文本字符串“Rec'vd”或“已關閉”。 與上面相同,如果文本是“Rec'vd”,我們希望傳輸帶有“rec'vd”的數據行。 如果“已關閉”,那么“關閉”行中的數據不應傳輸。

根據文本條件將所有數據傳輸到所有3張紙。 我想要第4張表格,根據日期范圍過濾此數據。 我希望能夠輸入日期范圍,然后輸入每張表中的所有數據(“查詢”,“引號”和“訂單”)以過濾到“主”第4頁。 每個數據表應在主表上有自己的區域(一個在另一個下面)以進行過濾。

這是我到目前為止...

Sub TransferTest1()
    Dim INQUIRE As Worksheet
    Dim QUOTE As Worksheet
    Dim ORDER As Worksheet
    Dim YString As String
    Dim RecString As String

    Set INQUIRE = ActiveWorkbook.Sheets("Inquiries")
    Set QUOTE = ActiveWorkbook.Sheets("Quotes")
    Set ORDER = ActiveWorkbook.Sheets("Orders")

    If INQUIRE.Range("K6:K1200") = "Y" Then
        INQUIRE.Range("A5:G1200").Copy QUOTE.Range("A5")
    End If

    If QUOTE.Range("N6:N1200") = "Rec'vd" Then
        QUOTE.Range("A5:G1200").Copy ORDER.Range("A5")
        QUOTE.Range("L5:M1200").Copy ORDER.Range("K5")
    End If
End Sub

我感謝任何和所有的幫助!

羅伯特Smithey

這是Autofilter的典型用例。

With INQUIRE.Range("A4:K1200")
    .AutoFilter 11, "Y"
    .offset(1).Resize(, 7).Copy QUOTE.Range("A5")  ' columns A:G
    .AutoFilter
End With

With QUOTE.Range("A4:N1200")
    .AutoFilter 14, "Rec'vd"
    .offset(1).Resize(, 7).Copy ORDER.Range("A5") ' columns A:G
    .offset(1).Resize(, 2).offset(11).Copy ORDER.Range("K5")  ' columns L:M
    .AutoFilter
End With

暫無
暫無

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

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