2017-07-07 51 views
-1

早上好。如何查看一個工作表,並根據其他工作表中的條件複製並粘貼到另一個工作簿中?

我有一個包含多個工作表的工作簿。比方說,工作表中&乙

在工作表BI有多個供應商列其中一些對他們有X和他們中的一些不

我想知道怎麼做是要如果有在列中出現「X」,然後查看最左邊的列(A)並在工作表A中查找該零件編號。

當它在工作表A中找到零件編號時,我想複製所有行和與其關聯的列並將其粘貼到全新的工作簿中。

通常零件號碼顯示在多行上讓我們說行1-6,我想要複製的信息跨越多個列讓我們說到列「T」。

+1

您到目前爲止嘗試了哪些代碼? – braX

+0

@braX ....我完全不在這裏。我不知道如何接近它。 –

回答

0

你的問題是不清楚。 假設你的意思是你有一個workbookworksheet命名爲A和worksheet命名爲B,你所描述的算法是這樣的:

Sub Test() 
Dim wb as Workbook 
Dim wsA as Worksheet 
Dim wsB as Worksheet 
Dim suppliersRange as Range 
Dim xRange as Range 
Dim searchValue as string 
Dim foundRange as Range 

'The two worksheets in the initial book: 
Set wsA = ThisWorkbook.Worksheets("A") 
Set wsB = ThisWorkbook.Worksheets("B") 

'The supplier column to search: 
Set suppliersRange = wsB.Range("D:D") 'let's assume it column D for now. 

Set xRange = suppliersRange.Find("X") 'Find "X" 

If not xRange is nothing then 
    searchValue = wsB.Range("A" & xRange.Row).value 'Get the value from column A to do the next search 
End If 

Set foundRange = wsA.UsedRange.Find(searchValue) 'Search for this number that we got with the previous step. 

If not foundRange is nothing then 'If it's found 
    Set wb = Workbooks.Add 'Create a new workbook 
    wsA.UsedRange.Copy wb.Worksheets(1).Range("A1") 'And copy Sheet A in there 
End If 

Set foundRange = Nothing 
Set xRange = Nothing 
Set suppliersRange = Nothing 
Set wsA = Nothing 
Set wsB = Nothing 
Set wb = Nothing 

End Sub 

注意,因爲你沒有指定你的意思與「多行一部分「和/或什麼列等 - 我只是複製整個表單內容。當然,您可以過濾出要複製的實際範圍,但此代碼肯定會爲您執行搜索,從工作表A創建新工作簿和複製粘貼。

+0

非常感謝您的詳細回覆。我不知道我是否可以澄清,但我會嘗試。所以當它在工作表B中查找列下的X(G:AD是供應商的實際範圍)時,如果該列/行中存在X,那麼我希望它在同一個工作表中查看列A B與供應商範圍,A欄有一個零件號。在Worksheet A中查找該零件編號,然後將該零件編號在單獨的工作簿上的Worksheet A中存在的每一行和每列複製一份。 –

+0

我已經稍微修改了你的代碼並使用一個按鈕來運行宏。它實際上將一些數據複製到新的工作表中,但它不是我需要的數據。它也提出了一些試圖打開另一個文件的提示。 –

+0

這裏不提示任何事情,不知道你改變了什麼。複製到新的工作簿工作表1,只是複製初始工作表A的usedrange範圍內的值。 - 同樣,這也是您描述的起點。不幸的是,我不知道你需要什麼數據或者確切的行爲應該是什麼 - 你的問題太模糊了。 –

相關問題