2016-08-29 6 views
-1

VBでExcelでコーディングを開始しました。私が抱えている問題は次のとおりです。列内の最後のセルを選択して最後の開いたセルの別のシートに挿入する方法

1つのシートの列の最後のセルをコピーし、次のシートの列の次の開いたセルに貼り付けます。できるだけ多くの機能を使用できるのですが、毎回機能を呼び出したりボタンをクリックしたりする必要はありません。ここで

は、私がこれまで持っているものです。

Sub UpdatePromoCalendar() 
Dim LR As Long 
Dim TR As Long 
LR = WorksheetFunction.Max(20, Range("A" & Rows.Count).End(xlUp).Row + 1) 
TR = WorksheetFunction.Max(20, Range("O" & Rows.Count).End(x1Up).Row - 1) 
Sheets("Sheet1").Range("O" & TR).CopySpecial xlCopyValues 
Sheets("Sheet2").Range("A" & LR).PasteSpecial xlPasteValues 
End Sub 

は、今では、LRと上記のペーストオプションを使用して動作します。しかし、列に最後に入力されたセルをコピーすることはできません。

申し訳ありません私はExcelのマクロとVBをExcelで使うのが初めてです。

事前にお世話になりました!

+2

'Rows.Count'を実行すると、どのシートが表示されると思いますか?シート名を追加する必要があります。それ以外の場合は、アクティブシートが何であれ使用します。 Rows.Count' – BruceWayne

+3

@BruceWayneは、Max関数の両方の範囲に親シートを追加する必要があると述べています。さもなければ、それは最後のセルを探しているべきシート列Aおよび列Oを知らない。 'Sheets(" Sheet2 ")。Range(" A "&Sheets(" Sheet2 ")。Rows.Count).End(xlUp).Row'など。 –

+0

返事をありがとう。あなたが追加するように提案したコードを追加しました。これまで同じエラーが発生していました。私は、アプリケーション定義エラーまたはオブジェクト定義エラーと言っているエラーを続けています。 TR = Sheets( "Sheet1")Range( "O"&Sheets( "Sheet1")。Rows.Count).End(x1Up).Row – Reduls

答えて

0

マクロを使用する代わりに、スプレッドシートをやり直してスライサー付きのピボットテーブルに移動することにしました。私はそれぞれの項目で別々のシートを作成し、price masterという新しい列を追加しました。このようにして、クリーナーで使いやすいテンプレートを表示するスライサーで結果をフィルタリングできます。

マクロはトラブルが多く、基本的には時間の無駄だったスライサーの代わりになりました。

関連する問題