[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 求教用VBS提取指定路径EXCEL指定单元格内容来重命名该EXCEL文件[内文详释]

本帖最后由 LeoCongC 于 2021-9-2 16:43 编辑

本人纯小白一枚,因为工作中有大量重复性操作,喜欢偷懒的我无奈之下通过百度搜索各位大神前辈的实例,进行摸索,比较。学习到了很小一点点BAT批处理的知识,自己非常嗨皮的做了个提升工作效率的BAT脚本。
之前实现的功能也都很简单,就是利用copy&ren 命令来复制文件,重命名等实现些最基础的操作。所以实践还算比较顺利……大神勿喷勿嘲笑哈
但是这次想要实现的功能有点复杂,自己前期经过大量的潜水学习还是完全一头雾水,离想要实现的效果相差甚远 [其实真实情况是:连VBS边边都没挨着……]
所以特来求指导T_T

情况其实挺简单,就是:在D盘有一个指定文件夹,假设名称为 TEST,该文件夹根目录下有三个文件及一个子文件夹:

D:\TEST\Excel.xlsx
D:\TEST\RenameTheExcel.VBS
D:\TEST\Start.BAT
D:\TEST\PIC\

要实现的功能就是:从Excel里的A2单元格提取内容[内容千奇百怪不固定,但是要提取的单元格永远是A2这点不会变]并以这个提取到的内容为名称去重命名Excel文件,以及重命名那个子文件夹
[如果遇到一些无法显示的特殊符号比如 “/”,“?”, “*” 导致无法重命名则:将所有特殊符号自动替换成英文半角的空格]
重命名成功之后自动删除RenameTheExcel.VBS,成功的话文件夹大概会是这个样子:

D:\TEST\提取到的内容.xlsx
D:\TEST\Start.BAT
D:\TEST\提取到的内容\

Start.BAT 文件里目前就写了一句:start D:TEST\RenameTheExcel.VBS

RenameTheExcel.VBS 这个实在不会写…… (T_T)

求助求助求助,求助的事情说三遍显得有诚意……

额顺便如果能把这个VBS脚本的内容直接写入BAT文件里,这样就更嗨皮啦。。。

回复 1# LeoCongC


   用python吧,你值得拥有,vbs不太流行了

TOP

本帖最后由 newswan 于 2021-9-2 19:38 编辑

powershell
  1. $Excel = New-Object -ComObject Excel.Application
  2. $Workbook = $Excel.Workbooks.Open("...")
  3. $WorkSheet = $Workbook.Worksheets.Item(1)
  4. $WorkSheet.cells.Item(2, 1).text
复制代码
如果能运行,可以加入bat

TOP

用CreateObject("Excel.Application") 之类的创建EXCEL对象后打开访问就是了,具体就不说,网上一搜一大把

TOP

回复 2# swanseabrian 你也太神了吧哈哈哈你怎么知道我最近就是一直在看python的教程~~  但是从零开始刚入门,这估计到实践解决问题还得个漫长的过程……

TOP

回复 3# newswan 谢谢我试过了这个不能运行,报错了

TOP

回复 4# Five66 谢谢你的回复,我大致好像理解你的意思,如果理解错了还请见谅,你是说新建一个表格?但是这个实际问题是表格一直都存在的且里面的数据一直更新,我只是需要定期从这个表格里提取单元格信息来为表格重命名这样子

TOP

回复 7# LeoCongC


    新建的是EXCEL表格对象,用于调用(或访问)里面的对象方法(或属性)来对EXCEL表操作(或访问),比如open方法(能够打开一个已存在的EXCE)l,cell方法(能够对EXCEl内容进行赋值设置)

TOP

论坛里有vbs,抄一下吧

TOP

  1. file = "z.xlsx"
  2. currentpath = createobject("Scripting.FileSystemObject").GetFolder(".").Path
  3. Set Excel = CreateObject("Excel.Application")
  4. Excel.Visible = false
  5. set wb = Excel.Workbooks.Open(currentpath + "\" + file)
  6. set ws = wb.worksheets(1)
  7. text = ws.Cells(2,1).text
  8. wb.close()
  9. Excel.Quit
  10. wScript.echo text
复制代码

TOP

返回列表