2016-08-02 4 views
0

https://drive.google.com/open?id=0B-Cnpvgoos3ceGRRZ00yYzVyUVEは、前回のコラムここ

後のデータの列を貼り付けボタンのマクロを作成することは、問題の文書を持っている本です。

"Sheet2"のデータ値を "Sheet1"のデータの最後に貼り付けるコードを書くのには、基本的に助けが必要です。私がボタンを押すたびに、以前に貼り付けられたデータの右側にデータが1列貼り付けられることがキャッチです。レポートを作成するたびにボタンを押すだけで、以前のデータにデータが追加されます。

これまでのコードは次のとおりです。

Dim wb As Workbook 
    Set wb = Workbooks("VBA TEST BOOK.xlsm") 

Dim lColumn As Long 
    lColumn = wb.Worksheets("Sheet1").UsedRange.Columns.Count + wb.Worksheets("Sheet1").UsedRange.Columns.Count - 1 

lColumnは私がスパークラインの左側の列と思うだろうその中のデータ、との最後の列を表現することになっています。

Sparklinesの左側に列を挿入し、その列にデータを貼り付けることで、私がやろうとしていることを達成するのが最も簡単なことです。私は、場所が変化する列をどのように使用するのか本当に分かりません。

誰でも手助けできますか?

+0

あなたは先月の後にそれを貼り付ける場合は、右、最後の列の右にある意味ですか? –

+0

スパークラインと前月のデータの間 – Keizzerweiss

+0

スパークラインと前月のデータの間に挿入された列でなければなりません。 – Keizzerweiss

答えて

0

私は解決策を見つけました。私は自分のデータの最後にプレースホルダーを置く。私の例では、プレースホルダは "X"です。各行の最後にはプレースホルダがあります。今では、 "X"を含むセルとして定義されている範囲を使用できます。その範囲を使用して、列のすぐ左に列を挿入することができます。誰もが参照のためにこれを見た場合のために私のコードはここにあります。私は実際に必要以上に多くのコードを持っていると思います。

Sub Button_Click() 

Dim wb As Workbook 
Dim newdata As Range 
Dim StartCell As Range 
Dim LastRow As Long 
Dim LastColumn As Long 
Dim n As Range 

    Set wb = Workbooks("VBA TEST BOOK.xlsm") 

    Set newdata = wb.Worksheets("Sheet2").Range("B2:B8") 

    Set StartCell = Cells.Find("X") 

wb.Worksheets("Sheet1").UsedRange 

LastRow = StartCell.SpecialCells(xlCellTypeLastCell).Row 

LastColumn = StartCell.SpecialCells(xlCellTypeLastCell).Column 

    Set n = wb.Worksheets("Sheet1").Range(StartCell, wb.Worksheets("Sheet1").Cells(LastRow, LastColumn)) 

n.Activate 

ActiveCell.EntireColumn.Insert Shift:=xlToLeft, CopyOrigin:=xlFormatFromRightOrAbove 

Dim PasteDestination As Range 

    Set PasteDestination = Cells.Find("X").Offset(0, -1) 

newdata.Copy 

PasteDestination.PasteSpecial xlPasteValues 

End Sub 

乾杯

関連する問題