excel - 将工作表之间的范围复制到最后一行
问题描述
寻找简单、优雅的解决方案,使用当前形式的范围附加到另一个工作表的最后一行。
范围:
Sheets("conf_9").Columns(5).Copy Destination:=Sheets("Rec_9").Columns(9)
Sheets("conf_9").Columns(6).Copy Destination:=Sheets("Rec_9").Columns(10)
Sheets("conf_9").Columns(7).Copy Destination:=Sheets("Rec_9").Columns(7)
Sheets("conf_9").Columns(8).Copy Destination:=Sheets("Rec_9").Columns(8)
Sheets("conf_9").Columns(12).Copy Destination:=Sheets("Rec_9").Columns(6)
对类似问题的几个回答似乎过于复杂且与Columns
用法不兼容 - 是的,我是 VBA 新手。例如,Columns(number) & last row
拒绝插入表达式语法。
非常感谢。
解决方案
请尝试下一个代码。不必复制整列。代码计算工作表的最后填充行以复制列和目标工作表列的第一个空行:
Sub AppendToOtherSheet()
Dim shC As Worksheet, wsR As Worksheet, lastRowC As Long, lastRowR As Long
Set shC = Sheets("conf_9")
Set wsR = Sheets("Rec_9")
lastRowC = shC.Range("E" & Rows.Count).End(xlUp).row
lastRowR = wsR.Range("I" & Rows.Count).End(xlUp).row + 1
shC.Range("E2:E" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 9)
shC.Range("F2:F" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 10)
shC.Range("G2:G" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 7)
shC.Range("H2:H" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 8)
shC.Range("L2:L" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 6)
End Sub
上面的代码假定所有列的行数相同,并且从列复制的工作表具有列标题。
如果讨论中的列没有相同的行数,则lastRowC
必须lastRowR
对要复制的每一列进行计算。如果没有列标题,则要复制的范围将(例如)从第一个复制代码行中的“E1”而不是“E2”开始。
推荐阅读
- python - Python如何修复由于睡眠功能而导致的Tkinter窗口崩溃
- django - 如何在再次执行函数之前计算新数据
- python - Python自定义函数重置csv文件
- javascript - 如何在 html 脚本中使用全局会话元素?
- elasticsearch - 弹性搜索:展开文档中的数组属性
- c++ - Qt Slot和signal未连接:No such signal
- javascript - 条纹元素工具提示“安全卡号输入框”
- json - JSON schema error Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined' with a Regex
- javascript - 即使缺少字段,JSON 有效负载也会根据架构进行验证
- laravel - 我在堆栈 laravel 8/jetstream/inertiajs 中注销时出错