找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33260|回复: 10

[文本处理] 批处理如何查找并替换Excel同一个工作薄的两个工作表相同位置的单元格内容?

[复制链接]
发表于 2014-12-17 20:59:08 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-4-17 16:25 编辑

同一个工作薄的两个工作表,打开表1,搜索内容22,使用替换工具把内容22替换成A,如何实现批量处理,我把表1中的22替换成A的时候,表2中相同坐标的单元格内的内容强行被替换成A。
就是说,替换表1中内容的时候,表2中对应坐标的单元格内容也被强行替换,而其他单元格内容不变
发表于 2014-12-17 21:48:59 | 显示全部楼层
你的excel可以提前设置好就行了
我录制了一个gif上传提示文件过大......
我描述一下

在 工作薄1 表格 内容 22
在 工作薄2 你想要和上面内容保持一致的格子里面,双击进去编辑 = 然后回到工作薄1选中 22 就好了
 楼主| 发表于 2014-12-17 22:03:07 | 显示全部楼层
回复 2# mms0536


    能否通过批量处理,把表1数字22替换成字母A的同时,表2中对应所在的坐标单元格内容强行被修改成字母A,其他不对应坐标的单元格,即使有数字22,也不会被替换,谢谢!
 楼主| 发表于 2014-12-17 22:04:43 | 显示全部楼层
你的excel可以提前设置好就行了
我录制了一个gif上传提示文件过大......
我描述一下

在 工作薄1 表格  ...
mms0536 发表于 2014-12-17 21:48



    因为数字22所在的单元格坐标是随机的,并且很多,能否批量处理呢
发表于 2014-12-17 22:31:40 | 显示全部楼层
回复 4# luke2


    那我就真不懂了.....
发表于 2014-12-17 23:01:38 | 显示全部楼层
So Easy ~

以 Office Excel 2007 为例
开发工具 -> 录制宏 ->
……进行你要的操作……
停止录制 -> 宏 -> 编辑
把生成的VBA代码转换为VBS、PS…语言(你会哪个就用哪个,直接用VBA是最好的),不懂的地方可以按 F1 。
发表于 2014-12-18 08:00:40 | 显示全部楼层
本帖最后由 shelluserwlb 于 2014-12-18 08:02 编辑

这个用VBA,不需要打开工作簿了,直接对工作表操作即可。
发表于 2014-12-18 10:01:54 | 显示全部楼层
本帖最后由 shelluserwlb 于 2014-12-18 10:13 编辑
  1. Sub a()
  2.     Dim n, m As Integer
  3.     n = Sheets(1).UsedRange.Rows.Count
  4.     m = Sheets(1).UsedRange.Columns.Count
  5.     For Each ran In Range(Cells(1, 1), Cells(n, m))
  6.         If ran = "22" Then
  7.             Sheets(1).Range(ran.Address) = "A"
  8.             Sheets(2).Range(ran.Address) = "A"
  9.         End If
  10.     Next
  11. End Sub
复制代码
以上是实现这个功能的VBA代码。
鼠标点击代码段内任何地方,按F5运行。
发表于 2014-12-18 20:50:51 | 显示全部楼层

  1. Dim objExcel
  2. Set objExcel=CreateObject("Excel.Application")
  3. objExcel.DisplayAlerts=false
  4. objExcel.visible=true
  5. search="22"
  6. subtitution="A"
  7. col=1
  8. row=1
  9. Set objWorkBook=objExcel.WorkBooks.Open("C:\Users\yiy\Downloads\Dos\1\Test.xlsx")
  10. do until objExcel.Workbooks(1).WorkSheets(1).Cells(row,col).value=""
  11.   do until objExcel.Workbooks(1).WorkSheets(1).Cells(row,col).value=""
  12.        if objExcel.Workbooks(1).WorkSheets(1).Cells(row,col).value=search then
  13.          objExcel.Workbooks(1).WorkSheets(1).Cells(row,col).value=subtitution
  14.          objExcel.Workbooks(1).WorkSheets(2).Cells(row,col).value=subtitution
  15.        end if
  16.     row=row+1
  17.   loop
  18.   col=col+1
  19.   row=1
  20. loop
  21. objWorkBook.Save
  22. objWorkBook.Close
  23. objExcel.Quit
复制代码
 楼主| 发表于 2014-12-18 23:14:36 | 显示全部楼层
以上是实现这个功能的VBA代码。
鼠标点击代码段内任何地方,按F5运行。
shelluserwlb 发表于 2014-12-18 10:01



    感谢大神呀
 楼主| 发表于 2014-12-18 23:15:38 | 显示全部楼层
yiwuyun 发表于 2014-12-18 20:50



    感谢大神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 21:29 , Processed in 0.020800 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表