更改粘贴位置,无需硬连线。 Excel VBA

时间:2018-03-08 03:41:20

标签: excel vba excel-vba

   Sub FindProj() 
    Dim Lastrow As Long
    Dim Newproj As Long
    Lastrow = Sheets("Historical").Cells(Rows.Count, "B").End(xlUp).Row
    Newproj = Sheets("Data").Cells(Rows.Count, "C").End(xlUp).Row
    Sheets("Historical").Cells(Lastrow, "B").Copy Sheets("Data").Cells(Newproj - 30, "C")

    End Sub

有没有办法将最后一行代码的后半部分更改为表格(“数据”)。单元格(Newproj - Master + 1,“C”)

同样,由于粘贴了“Master”模板,我希望在表变长之前将信息粘贴到表的最后一行。 因此,如果最后一行是100,那么该表有32行。这意味着新的最后一行是132。

目前,我的代码只粘贴在正确的行中,因为我计算出我必须先将101行中的值粘贴到数学中。 如果我改变模板尺寸,我将不得不进入代码并将“30”更改为“31”或“35”,具体取决于新的行数。

我不希望它硬连线。我希望它根据变量进行更改,就像我的其余代码一样。

主模板是“数据”工作表中的范围。 主表称为“历史”,尺寸为30列宽,但表中有许多行。 模板是“历史”中的表格,其为30列宽32行高,即“历史”表格的前32行。

我正在尝试将Master表粘贴到表的末尾,然后从新粘贴的表的单元格1,1中粘贴另一个源的值。

我想在不对主模板的尺寸进行硬连接的情况下执行此操作,因为这些尺寸可能会随着时间而变化。

1 个答案:

答案 0 :(得分:0)

请尝试使用以下代码

Sub FindProj()
     Dim Lastrow As Long
     Dim Newproj As Long
     Dim hist As Worksheet
     Dim data As Worksheet
     Set hist = Worksheets("Historical")
     Set data = Worksheets("Data")
     Lastrow = hist.Range("B" & Rows.Count).End(xlUp).Row
     Newproj = data.Range("C" & Rows.Count).End(xlUp).Row
     hist.Range("B1:B" & Lastrow).Copy data.Range("C" & data.Range("C" & Rows.Count).End(xlUp).Row + 1)
 End Sub