【发布时间】:2018-03-08 22:36:16
【问题描述】:
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
有没有办法把最后一行代码的后半部分改成Sheets("Data").Cells(Newproj - Master + 1, "C")?
如中,我希望在表格因粘贴“主”模板而变长之前将信息粘贴到表格的最后一行。 因此,如果最后一行是 100,则该表有 32 行。这意味着新的最后一行是 132。
目前,我的代码仅粘贴在正确的行中,因为我计算出我必须在 101 中使用数学粘贴 30 行之前的值。 如果我更改模板尺寸,我将不得不进入代码并将“30”更改为“31”或“35”,具体取决于新的行数。
我不希望它硬连线。我希望它根据变量进行更改,就像我的其他代码一样。
主模板是“数据”工作表中的一个范围。 主表称为“Historical”,维度为 30 列宽,但表中恰好有许多行。 Master 模板是“Historical”中的一个表格,它宽 30 列,高 32 行,即“Historical”表格的前 32 行。
我正在尝试将主表粘贴到表的末尾,然后将另一个来源的值粘贴到新粘贴的表的单元格 1,1 中。
我想在不硬连接主模板尺寸的情况下执行此操作,因为这些尺寸可能会随着时间而改变。
【问题讨论】:
-
你没有提供任何迹象表明我可以确切地确定'“主”模板'是什么或在哪里。
-
@Jeeped Master 模板是数据表的一部分,在添加新项目时复制并粘贴在表的末尾。在我目前的情况下,它是我表的前 32 行。
-
好吧,然后在你的数学中使用 *'Master" 模板'.rows.count。
-
@Jeeped 这是一个实际的命令吗?需要明确的是,“Master”是一张桌子。你是说用 Sheets("Data").Cells("Master"template'.rows.count 替换 Sheets("Data").Cells(Newproj - 30, "C")?
-
@Jeeped 或 Sheets("Data").Cells(Newproj - "Master"Template', "C")?