[英]How to copy column from one sheet to another if the condition is met in excel?
[英]Excel VBA copy paste loop from one sheet to another when condition is met
我是 VBA 的初學者。 我已經檢查過這個問題是否已經被問到,但沒有發現任何完美契合的問題,而且我也未能正確修改我找到的最接近的代碼。
我有一個包含原始銷售數據(大約 5,000 個項目)的文件位於 sheet1 列 A 中。在 sheet2 中,我有一個表,其中列 A 中有大約 500 個數據,其中已經消除了 sheet1 中的重復項目。 500 項中的每一項都在 B 列中重新命名。
我想創建一個循環來檢查 sheet1 列 A 中的每個單元格,如果數據與 sheet2 列 A 中的數據之一相同。當條件滿足時,它然后將 sheet2 中的 B 列中的足夠單元格復制粘貼到sheet1 B 列(即同一行)中有足夠的單元格。 我需要對 500 個項目進行操作。
產品分類 1
巧克力
化妝品
巧克力
化妝品
化妝品
化妝品
化妝品
巧克力
巧克力
化妝品
化妝品
果醬化妝品
化妝品
產品
巧克力cosme果醬
其中指的是列 Sorting2 :
CHO COS 果醬
到目前為止編寫的代碼
Sub sorting() Dim Cell As Range Dim i As Integer For Each Cell In Sheet1.Range("A2:A10000) If Cell.Value = Sheet2.Range("A2") Then Sheets("Sheet2").Select Range("A2").Select Selection.copy Sheets("Sheet1").Select Cell(i,2).Select Cell.PasteSpecial End If Next Cell End Sub
這聽起來像您只需要在 sheet1 列 b 中使用 vlookup 公式
類似於單元格 B2 sheet1 中的內容
=Vlookup(A2,sheet2!'A1:B500,2,0)
然后將其一直復制粘貼到 b 列
看着你的代碼,你沒有將變量 i 設置為任何東西,看起來你需要在 if 之前添加i=i+1
我還會刪除您的選擇和選擇,因為如果您單擊鼠標,這可能會導致錯誤。 您只需要
Sheets("sheet2").Range("A2"). copy
代替
Sheets("sheet2").select
Range("A2").select
Selection.copy
你也不應該復制 B2 因為 A2 是你匹配的值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.