用于复制所需部分中的文本的宏
我需要一个 Excel 宏来
1.复制字符串
2. 在列的下方查找不同的字符串
3. 将复制的字符串粘贴到其间的所有单元格
4. 删除各部分之间的 4 行。
5. 重复下一部分,直到完成整个文件。
数据看起来像这样
ABC
(空白)
上午
上午
上午
文件
(空白)
防御
(空白)
上午
上午
上午
上午
上午
上午
文件
(空白)
GHI
(空白)
下午
下午
下午
文件
(空白)
JKL
(空白)
下午
下午
下午
下午
下午
下午
文件
等重复超过一百万行。
我需要它看起来像
ABC
ABC
ABC
ABC
防御
防御
防御
防御
防御
防御
GHI
GHI
GHI
GHI
JKL
JKL
JKL
JKL
JKL
每个部分的行数各不相同。
I need an Excel macro to
1. Copy a string
2. Find a different string further down the column
3. Paste the copied string to all the cells in between
4. Delete 4 rows between sections.
5. Repeat for the next section until the entire file is completed.
Data looks like this
ABC
(blank)
AM
AM
AM
File(s)
(blank)
DEF
(blank)
AM
AM
AM
AM
AM
AM
File(s)
(blank)
GHI
(blank)
PM
PM
PM
File(s)
(blank)
JKL
(blank)
PM
PM
PM
PM
PM
PM
File(s)
etc. repeated for over a million lines.
I need it to look like
ABC
ABC
ABC
ABC
DEF
DEF
DEF
DEF
DEF
DEF
GHI
GHI
GHI
GHI
JKL
JKL
JKL
JKL
JKL
The number of rows in each section varies.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
执行此操作的代码非常简单(只需几个 Do...Until 循环),但获得此解决方案的最佳方法是使用 Excel 中的宏 - 记录函数。
如果您将来将使用 VBA,并且这是您第一次接触 VBA,那么学习基础知识的最佳方法莫过于点击“录制宏”按钮,手动执行电子表格上的一些步骤,然后查看Excel 生成的代码。
您将能够看到执行所需操作所需的步骤。然后,您需要做的唯一一件事是将这些步骤包装在一个循环中,并进行逻辑检查(If..Then)以检查单元格中的字符串,并跟踪已执行的行数。在遇到下一个字符串(在粘贴语句中使用)之前跳过。
The code for doing this is pretty straightforward (just a couple of Do...Until loops), but the best way for you to obtain the solution for this is to use the Macro - Record function in Excel.
If you will be using VBA in the future, and this is your first entry into it, there is no better way to learn the basics than to hit the Record Macro button, manually perform some of the steps on the spreadsheet and then look at the code that Excel generated.
You will be able to see the steps that are necessary to perform the operations needed. The only thing that you will need to do then is to wrap those steps in a loop, and do a logic check (If..Then) to check the strings in the cells, as well as keep track of the number of rows that were skipped before encountering the next string (to use in the paste statement).