我是VBA新手。
实际上,我是在收集每周的合规性记录。我的主要问题是,我有一个动态的查询表,在一个好的星期它是空的。我希望能够提取此表的内容,并将它们粘贴到包含年初至今数据的静态表下面的第一个空行。
这一步很容易手动完成,但我希望实现自动化,以便将这份报告交给不太懂技术的团队成员。
这个问题:How to copy and paste two separate tables to the end of another table in VBA?已经提供了我目前使用的大部分内容,我交换了其中的一些值和声明,以与我的工作表和范围相关,但大部分内容都是复制/粘贴"Destination:="
在大多数情况下,这个块做的正是我所追求的:
(我已经注解了GCC的第二个范围,但打算在这个范围解决后使用它。)
Sub Inv_Copy_Paste()
Dim TC As Worksheet
'Dim Chart As Worksheet
Dim lr2 As Long
Set TC = Worksheets("TC Data Dump")
'Set Chart = Worksheets("Inventory for Charts")
lr2 = TC.Cells(Rows.Count, 1).End(xlUp).Row
With TC
.Range("O2", ("W2" & .Range("O" & Rows.Count).End(xlUp).Row)).Copy Destination:=TC.Cells(Rows.Count, 1).End(xlUp).Offset(1)
'.Range("K2", ("S2" & .Range("K" & Rows.Count).End(xlUp).Row)).Copy Destination:=Chart.Range("A" & lr2 + 1)
End With
End Sub
我遇到的一个例外是,一旦代码复制了填充的数据,它就会在数据下面添加一些空行:
20 Blank Rows
这是我在这里已经存在的代码中忽略的东西吗?我承认我几乎不理解代码在使用TC部分中的作用,因此任何额外的上下文都将非常感谢。
- 附加问题**:当我试图将 * 另一个 * 动态查询表复制到第二个静态表时,我是否需要一个单独的Sub/Worksheet?
4条答案
按热度按时间kx5bkwkv1#
处理空白
End(xlUp)
只会向上到表格的最后一行(单元格),如果底部有空行或空白行,也会被复制。xlFormulas
的Find
方法将转到最后一个非空行,而使用xlValues
的Find
方法将(进一步)转到最后一个非空行。第一节第一节第一节第一节第一次
Debug.Print
* 即时窗口中的结果 (Ctrl+G
)*3b6akqbq2#
首先,行计数是计算第一列的行数。-lr 2 = TC.Cells(Rows.Count,1).End(xlUp).Row Here。而不是计算你要复制的表格中的行数。如果你把这一行中的数字1改为你要复制的列,我想它是“O”,也就是15。
那么恐怕您必须为第二个表重新定义lr 2或为其创建另一个变量。lr 3 = TC.Cells(Rows.Count,11).End(xlUp).Row '11表示第k列
如果有帮助请告诉我。
8i9zcol23#
这就是你要找的吗
bq9c1y664#
另一个论坛回应了这个解决方案:
同样,我不知道为什么这个工作和其他不,但我想分享最终的结果。