2016-09-30 4 views
-1

VBA beginner here。私は日付に依存するVBAコードを作成しようとしています。ここに私の情報はあります:基準に基づいて別のシートにセルを上書きしてセルをコピーして貼り付けます。

シート1:私はセルA1から始まり、G29に行くテーブルを持っています。セルB2には、ExcelのTODAYオプションを使用してコード化された日付があります。

この表は毎日更新する必要がありますが、1日が終わると、この表の内容を保存して翌日にシート1をクリアします。私はそれをすべて隠しシートのシート2に保存したいと思います。

現時点では、私はコピーしてシート2に貼り付けてから、テーブルの下にあるセルをアクティブにしてコピー準備が整いました翌日貼り付けた。

問題は、マクロを実行するたびに、シート2に入っているセルの下の選択されたセルにテーブルをコピーして貼り付けることです。特定の日付の場合、 4,5、同じテーブルのすべてのバリエーション、お互いの下のすべてのバリエーション。

私がしたいことは、セルB2(シート1)の値がxで、シート2の対応する日付セルの値が同じであれば、それらのコピーとペースト細胞。

私は最後のビットを行う方法を知っています。私は、今のところ私の特定の検索と両方のシート上の細胞の活性化を行う方法を教えています。 1つの日付の後に一般的に保管されている場合、シート2の次の日付セルは、B2より31セル下にあり、次に31セルなどとなります。

これは意味があると思います。人々に質問がある場合は、私に知らせてください!

EDIT:

ここでは、これは私のコピー&ペーストを行い、以下のセルを選択する私の現在のマクロ

Sub Macro1() 
' 
' Macro1 Macro 
' 
' Acceso directo: CTRL+h 
' 
    Range("A1:G29").Select 
    Selection.Copy 
    Sheets("Hoja2").Select 
    Range("A1").Select 
    ActiveSheet.Paste 
    Range("A1").Select 
    ActiveCell.Offset(31, 0).Select 

End Sub 

です。しかし、私は日付に基づいて特定のセルに貼り付けるためにExcelを取得することに苦労しています。

+2

マクロコードを表示できますか? –

+0

F単語!それは私のマクロを保存しませんでした: '(私はそれをすぐに再作成します、どのように私はそれを保存するのですか? – Kaish

答えて

0

ソースシート内の日付が既にターゲットシートに存在するかどうかをチェックします。その場合は、対応する範囲に29行のテーブルを貼り付け、それ以外の場合は下に貼り付けます。 次のように動作します:

Sub Macro1() 

target = Cells("B2") 
Range("A1:G29").Copy 
end = Sheets("Hoja2").Cells(1048576, 2).End(xlUp).row 'check the last filled in row 
tables = end/29 'counts how many tables are already pasted in the sheet 
for i = 1 to tables 
    index = (i-1)*29 + 2 'row index where the date is written 
    if Sheets("Hoja2").Cells("B" & index) = target then 'check if the date corresponds 
     Sheets("Hoja2").Range("A" & index - 1).Paste 
     Range("A" & index).Select 
     ActiveCell.Offset(31, 0).Select 
     exit sub 
    end if 
next i 
'the following lines are skipped if the for loop pastes the table 
Sheets("Hoja2").Range("A" & end + 1).Paste  
Range("A" & index).Select 
ActiveCell.Offset(31, 0).Select 

End Sub 
関連する問題