簡體   English   中英

如何在2個表中搜索特定值並使用VBA復制到新表

[英]How to search a specific value in 2 tables and copy to a new sheet using VBA

我正在努力實現以下目標。

使用一個唯一標識符搜索另一張參考表,並將整行打印到一張新紙上。

我被困在第二個for循環中,遍歷一列以獲得唯一標識符。

希望有人可以幫助我。

_____編輯_____

我覺得我的要求太含糊了,所以我決定把它寫成圖畫。

圖片說明

Private Sub CommandButton2_Click()

Worksheets("Dependency Table").Range("A2:K99").ClearContents
a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row


For i = 1 To a

If ActiveCell.value = Worksheets("Dependency Matrix").Cells(i, 1).value Then

    For k = 1 To 5

        If Worksheets("Dependency Matrix").Cells(Selection.Row, k).value = Worksheets("Sheet1").Cells(i, 4).value Then

                Worksheets("Sheet1").Rows(i).Copy
                Worksheets("Dependency Table").Activate
                b = Worksheets("Dependency Table").Cells(Rows.Count, 1).End(xlUp).Row
                Worksheets("Dependency Table").Cells(b + 1, 1).Select
                ActiveSheet.Paste
                Worksheets("Dependency Table").Activate

        End If

    Next

End If

Next

Application.CutCopyMode = False

End Sub

看來您可能已經在第二個for循環中反轉了比較單元格中的行

代替:

If Worksheets("Dependency Matrix").Cells(Selection.Row, k).value = Worksheets("Sheet1").Cells(i, 4).value Then

嘗試:

If Worksheets("Dependency Matrix").Cells(i, k).value = Worksheets("Sheet1").Cells(Selection.Row, 4).value Then

而且,正如Nathan在問題中所說的那樣,您不必選擇/復制/粘貼,而只需將新范圍設置為等於for語句內列中的范圍。

Worksheets("Dependency Table").Cells(b + 1 &":"& b+1).value = Worksheets("Sheet1").Rows(i &":"& i).value

我已經弄清楚了如何實現我的預期。 盡管該方法可能有點初級。

決定不執行destrange.value=sourcerange.value 只需快速修復即可完成此工作。

Private Sub CommandButton2_Click()

Worksheets("Dependency Table").Range("A2:K99").ClearContents
a = Worksheets("Dependency Matrix").Cells(Rows.Count, 1).End(xlUp).Row
c = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
d = Worksheets("Dependency Matrix").Cells(1, Columns.Count).End(xlUp).Column

For i = 1 To a

If ActiveCell.Value = Worksheets("Dependency Matrix").Cells(i, 1).Value Then

    For k = 1 To 30

        For r = 1 To c

            If Worksheets("Dependency Matrix").Cells(i, k).Value = Worksheets("Sheet1").Cells(r, 4).Value Then

                Worksheets("Sheet1").Rows(r).Copy
                Worksheets("Dependency Table").Activate
                b = Worksheets("Dependency Table").Cells(Rows.Count, 1).End(xlUp).Row
                Worksheets("Dependency Table").Cells(b + 1, 1).Select
                ActiveSheet.Paste

             End If
        Next

    Next

End If

Next

Application.CutCopyMode = False
ActiveSheet.Range("a:k").RemoveDuplicates Columns:=Array(3), Header:=xlGuess

End Sub

暫無
暫無

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

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