2016-11-29 173 views
0

我有2個工作簿說工作簿1和工作簿2.需要在工作簿2中放置一個過濾器「INTDN」在列G和複製列「O」和分別在工作簿1,列「B」和列「I」中的列「J」。篩選數據並將結果從一個工作簿複製到另一個使用VBA

任何人都可以給這個VBA代碼?

工作簿和工作表名稱可以是任何取決於源的東西,但是格式總是相同的。

供參考一些更多的信息: -

簿2 放入第12行G列的過濾器: - 「INTDN」

工作簿1層 粘貼複製從塔 「O」 的數據單元B25向下。 將從列「J」複製的數據粘貼到單元格I25以下。

然後,我將這個宏分配給每個工作表,我需要這個工作。

我是VBA的新手。感謝您的幫助。

這是我可以這樣寫: -

Sub CopyData() 
' 
' CopyData Macro 
' 

' 
    Windows("Book1 (8).xlsx").Activate 
    Range("A12").Select 
    Selection.AutoFilter 
    Range("G12").Select 
    ActiveSheet.Range("$A$12:$AV$72").AutoFilter Field:=7, Criteria1:="INTDV" 
    Range("O35").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 
    Windows("DebitNotes.xlsm").Activate 
    ActiveSheet.Paste 
    Range("I25").Select 
    Windows("Book1 (8).xlsx").Activate 
    Range("J35").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Range("J35:J72").Select 
    Application.CutCopyMode = False 
    Selection.Copy 
    Windows("DebitNotes.xlsm").Activate 
    ActiveSheet.Paste 
End Sub 
+1

Stackoverflow不是一個代碼編寫服務,你需要做一些研究,並有一個在編寫你自己的代碼。一旦你走了(可能會陷入困境或困惑,這是正常的),你可以發佈你的代碼,其他人會更可能提供幫助,因爲它表明你已經試圖自己解決你的問題。 –

+0

你應該能夠記錄一個宏給自己一個起點。 – bobajob

+0

@JamesC。 我修改了我的問題以添加代碼。不知道它是多麼的合乎邏輯。欣賞你的投入。 – miratshah

回答

0

此代碼將複製工作表Sheet1上從O列值,並複製到Sheet 2中柱P的結尾。 我也使它通用,因此它可以用於任何列和表。

Sub Test() 
    Call CopyColumn("Sheet1", "O", "Sheet2", "P") 
End Sub 

Function CopyColumn(sourceSheetName As String, sourceColIndex As String, destSheetName As String, destColIndex As String) 
    Dim lastRowSource As Integer: lastRowSource = Sheets(sourceSheetName).Cells(Rows.Count, sourceColIndex).End(xlUp).Row 
    Dim lastRowDest As Integer: lastRowDest = Sheets(destSheetName).Cells(Rows.Count, destColIndex).End(xlUp).Row 
    Sheets(sourceSheetName).Range(sourceColIndex & "1:" & sourceColIndex & lastRowSource).Copy Destination:=Sheets(destSheetName).Range(destColIndex & lastRowDest + 1) 
End Function 
+0

謝謝,我發佈了一個代碼,如果你可以看看它,將不勝感激。 – miratshah

0

我有這最後的代碼工作正常。唯一的問題是我希望此代碼適用於任何打開的工作簿>工作表。工作簿或工作表的名稱可以是任何東西。這不在我的控制之下。

Sub CopyPaste() 
' 
' CopyPaste Macro 
' 

' 
    Range("H11").Select 
    ActiveCell.FormulaR1C1 = "=TODAY()" 
    Range("H12").Select 
    Windows("Data1.xlsx").Activate 
    Range("A12").Select 
    Selection.AutoFilter 
    Range("G12").Select 
    ActiveSheet.Range("A12").AutoFilter Field:=7, Criteria1:="INTDV" 
    Range("O35").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 
    Windows("DebitNotes.xlsm").Activate 
    Range("B25").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("I25").Select 
    Windows("Data1.xlsx").Activate 
    Range("J35").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 
    Windows("DebitNotes.xlsm").Activate 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Range("I207").Select 
    Selection.End(xlUp).Select 
    Selection.End(xlUp).Select 
    Selection.End(xlUp).Select 
    Selection.ClearContents 
    Range("I207").Select 
    Columns("I:I").EntireColumn.AutoFit 
    Columns("H:H").EntireColumn.AutoFit 
    Range("I207").Select 
End Sub 
相關問題