如何实现:若A列不含英文句点则自动交换A、B列内容
批量处理Excel姓名列交换的VBA脚本
实现目标
自动检查每一行A列内容,只要不含.,就把这一行的A、B列数据互换,搞定9000条数据的手动重复操作。
傻瓜式操作步骤
- 打开你的营销名单Excel文件
- 按下
Alt + F11打开VBA编辑器 - 在编辑器左侧找到你的工作簿名称,右键点它,选「插入」→「模块」
- 把下面的代码复制粘贴到弹出的空白模块里
- 按下
F5运行脚本,等几秒就处理完了
Sub SwapNameColumns() Dim lastRow As Long Dim i As Long Dim tempValue As Variant ' 自动找到A列最后一行的位置,不用自己数行数 lastRow = Cells(Rows.Count, "A").End(xlUp).Row ' 从第一行开始遍历所有数据行 For i = 1 To lastRow ' 判断当前A列单元格里有没有"." If InStr(Cells(i, "A").Value, ".") = 0 Then ' 临时存A列内容 tempValue = Cells(i, "A").Value ' 交换A、B列数据 Cells(i, "A").Value = Cells(i, "B").Value Cells(i, "B").Value = tempValue End If Next i End Sub
重要提醒
- 运行前一定要备份原文件!万一操作错了还能找回数据
- 如果你的名单有表头(第一行是标题),把代码里的
For i = 1 To lastRow改成For i = 2 To lastRow,别把表头也换了
内容的提问来源于stack exchange,提问作者Regan
相关产品推荐
相关产品推荐

