Board logo

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

作者: luke2    时间: 2014-12-17 20:59     标题: 批处理如何查找并替换Excel同一个工作薄的两个工作表相同位置的单元格内容?

本帖最后由 pcl_test 于 2016-4-17 16:25 编辑

同一个工作薄的两个工作表,打开表1,搜索内容22,使用替换工具把内容22替换成A,如何实现批量处理,我把表1中的22替换成A的时候,表2中相同坐标的单元格内的内容强行被替换成A。
就是说,替换表1中内容的时候,表2中对应坐标的单元格内容也被强行替换,而其他单元格内容不变
作者: mms0536    时间: 2014-12-17 21:48

你的excel可以提前设置好就行了
我录制了一个gif上传提示文件过大......
我描述一下

在 工作薄1 表格 内容 22
在 工作薄2 你想要和上面内容保持一致的格子里面,双击进去编辑 = 然后回到工作薄1选中 22 就好了
作者: luke2    时间: 2014-12-17 22:03

回复 2# mms0536


    能否通过批量处理,把表1数字22替换成字母A的同时,表2中对应所在的坐标单元格内容强行被修改成字母A,其他不对应坐标的单元格,即使有数字22,也不会被替换,谢谢!
作者: luke2    时间: 2014-12-17 22:04

你的excel可以提前设置好就行了
我录制了一个gif上传提示文件过大......
我描述一下

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



    因为数字22所在的单元格坐标是随机的,并且很多,能否批量处理呢
作者: mms0536    时间: 2014-12-17 22:31

回复 4# luke2


    那我就真不懂了.....
作者: yu2n    时间: 2014-12-17 23:01

So Easy ~

以 Office Excel 2007 为例
开发工具 -> 录制宏 ->
……进行你要的操作……
停止录制 -> 宏 -> 编辑
把生成的VBA代码转换为VBS、PS…语言(你会哪个就用哪个,直接用VBA是最好的),不懂的地方可以按 F1 。
作者: shelluserwlb    时间: 2014-12-18 08:00

本帖最后由 shelluserwlb 于 2014-12-18 08:02 编辑

这个用VBA,不需要打开工作簿了,直接对工作表操作即可。
作者: shelluserwlb    时间: 2014-12-18 10:01

本帖最后由 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运行。
作者: yiwuyun    时间: 2014-12-18 20:50

  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
复制代码

作者: luke2    时间: 2014-12-18 23:14

以上是实现这个功能的VBA代码。
鼠标点击代码段内任何地方,按F5运行。
shelluserwlb 发表于 2014-12-18 10:01



    感谢大神呀
作者: luke2    时间: 2014-12-18 23:15

yiwuyun 发表于 2014-12-18 20:50



    感谢大神




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2