2015-11-05 38 views
0

有一個工作簿,該工作簿使用多個工作表(15+)來保存多行製造商數據。我們通過特定列輸入所需數量來選擇訂單項目。我們使用高級過濾和複製到選項來將包含數量> 0的所有行項目移動到每個工作表中的特定區域。複製到範圍(P9:V3000)對於每個工作表都是相同的。我想編寫一個vba宏來將每個工作表中預先過濾的數據複製並組合到名爲(設備列表)的工作簿內的單獨工作表中。我的挑戰是一直只選擇包含細胞下方數據的細胞(P9:V9)。 P9:V9是標題行,下面的所有內容(P10:V3000)是我希望複製的數據。將來自多個工作表的過濾數據合併到單個工作表中

以下是我用於特定於一個工作表(「Ansul設備」)的代碼當下面有多個訂單項(P9:V9)時,代碼將起作用。當我只有一個項目代碼行 「範圍(Selection,Selection.End(xlDown))。選擇」選擇P10:V10下的每個單元即使它們不包含數據。只選擇包含數據的範圍(P10:V3000)中的單元的最佳方法是什麼?如果可能的話,希望遍歷每個工作表。

Sub PC_CombinedCopyTo_EquipmentList() 
'Turn Off Screen Updating 
Application.ScreenUpdating = False 
'Clear the("Equipment List") Copy to Range via macro 
Application.Run ("EquipmentList_ClearCTR") 
'Set imax rows variable which will allow me to select the first blank cells below the header in the ("Equipment List") worksheet 
Sheets("Equipment List").Select 
iMaxRows = Cells(Rows.Count, "A").End(xlUp).Row** 
'Copy Ansul ADF Equipment list 
Sheets("Ansul Equipment").Select 
Range("P10:V10").Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.Copy 
Sheets("Equipment List").Select 
Range("A" & iMaxRows + 1).Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False 
Application.ScreenUpdating = True 
End Sub 

回答

0

範圍。( 「P10:V10」)選擇

範圍(選擇,Selection.End(xlDown))選擇

這是正常的,你選擇排10你去xlDown,所以選擇到工作表的末尾。

儘管我建議避免使用Select,爲了消除這種不良成語編輯任何宏生成的代碼,我建議這是一個快速修復:

Range("P10:V" & cells(Rows.count, "v").end(xlUp).Row).Select 
相關問題