excel - 如何制作 Excel 宏循环以剪切第二行并粘贴到第一行
问题描述
我对 Excel VBA 非常陌生,我有一个包含大约 200 个条目的报告,但是每个条目都分为两行,因此第 1 行的前 8 列是数据的前半部分,第 2 行的前 8 列是下半场。我想取第 2 行的 8 列,将它们剪切并粘贴到第 1 行的末尾,删除空行,然后继续阅读报告的其余部分。
我使用记录宏来获取剪切范围“A2:H2”并将其粘贴到“I1”的代码,然后我为下一个条目重复了该代码。我知道这效率不高,因为它不在循环中并且很长。任何帮助将不胜感激。这是我的代码示例:
Range("A2:H2").Select
Selection.Cut
Range("I1").Select
ActiveSheet.Paste
Range("A4:H4").Select
Selection.Cut
Range("I3").Select
ActiveSheet.Paste
Range("A6:H6").Select
Selection.Cut
Range("I5").Select
ActiveSheet.Paste
Range("A8:H8").Select
Selection.Cut
Range("I7").Select
ActiveSheet.Paste
Range("2:2,4:4,6:6,8:8").Select
Selection.Delete Shift:=xlUp
结果将是来自 A1:P1 的数据,并且只有 200 行数据而不是 400 行。谢谢!
解决方案
这是一个替换您的代码的循环:
Dim r As Long, toprow As Long, bottomrow As Long
toprow = 2
bottomrow = 8
For r = toprow To bottomrow Step 2
Range("A" & r & ":H" & r).Cut Range("I" & r - 1)
Next
如果要删除间距,则循环内部应为
Range("A" & r & ":H" & r).Cut Range("I" & r / 2)
推荐阅读
- c++ - 为什么将字符串指针分配给字符串指针时会出现段错误?
- php - 我在 PHP 中使用 Curl 发出获取请求时遇到问题?SSL || 301
- c++ - C++ _Inout_updates_bytes_ 语法
- multithreading - 有没有办法在批处理文件中完成多线程或并行进程?
- java - Admob tagForChildDirectedTreatment()
- python - 在python中生成一组具有特定共同差异的小数点时出错
- typescript - 在 TypeScript 中测试具有模拟依赖项的类
- python - 如何清理具有字符串值的数据集?
- linux - 将 1 天添加到现有日期中,日期中有点
- python - Flask 表单数据未发送