在我的最后一列之后创建一个粘贴数据列的按钮宏

时间:2016-08-02 16:07:21

标签: excel-vba vba excel

https://drive.google.com/open?id=0B-Cnpvgoos3ceGRRZ00yYzVyUVE

这是一本有相关文档的书。

基本上,我需要帮助编写代码以将“Sheet2”中的数据值粘贴到“Sheet1”上的数据末尾。问题是,每次按下按钮时,它都会将数据粘贴到先前粘贴数据右侧的一列。每个月我做报告时都会点击按钮,然后将数据添加到以前的数据中。

这是我到目前为止的代码。

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的左栏。

我的想法是,通过在我的迷你图的左侧插入一列并将数据粘贴到其中来完成我想要做的事情是最容易的。我不确定如何使用具有不断变化的位置的列。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分: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   

干杯