2016-11-29 8 views
0

2つのブックがあります。ブック1とブック2と言ってください。フィルター "INTDN"をG列に、フィルターを "O"にコピーし、ブック1の列「J」、列「B」および列「I」。データをフィルタリングし、VBAを使用して1つのブックから別のブックに結果をコピーする

これに対して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

自分自身に出発点を与えるためにマクロを記録できるはずです。 @ JamesC。 – bobajob

+0

私はコードを追加する質問を変更しました。それがどれほど論理的かはわかりません。あなたの入力を感謝します。 – miratshah

答えて

0

このコードでは、Sheet1の列Oから値をコピーして、Sheet2の列の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 
関連する問題