VBS遍历Excel工作表的实现代码
介绍了利用VBS脚本遍历Excel工作表的多种实现方法,包括通过文件拖拽获取路径、遍历所有工作表并写入数据、循环激活工作表执行宏、逐行逐列读取单元格值并弹窗显示,以及将工作表数据读取到数组后自动关闭弹窗提示。
`子章节,没有强行新增模板化小标题。 ```html
在日常办公自动化中,VBS脚本与Excel的配合可以说是相当高频的场景。不管是批量处理报表、读取历史数据,还是自动化执行宏,用VBS调用Excel对象模型往往比手动操作省下大量时间。下面几个代码片段,涵盖了从文件拖拽、工作表遍历到数据读取和弹窗提示的常见需求,直接拿来就能用。

先看一个很实际的用法:把Excel文件拖拽到脚本图标上,脚本自动获取文件路径并打开对应工作簿。代码开头会检查是否有拖拽动作,如果没有则弹出提示。
'******************************************
'拖拽文件,获取文件路径
'******************************************
If wscript.Arguments.count=0 then
msgbox "拖拽文件到本图标",0,"提示"
End if
for a=0 to wscript.Arguments.count-1
strPath=wscript.Arguments(a)
next
'******************************************
'定义Excle对象、工作薄对象、工作表对象
'******************************************
dim oExcel,oWb,oSheet
set ws=WScript.createobject("wscript.shell")
Set oExcel=CreateObject("Excel.Application")
'打开指定的工作簿
Set oWb=oExcel.Workbooks.Open(strPath)
'显示打开的Excel工作簿
oExcel.visible=true
'******************************************
'遍历工作簿的所有工作表
'******************************************
for j= 1 to oWb.sheets.count
set oSheet=oWb.Sheets(j)
'选中并激活工作表
oSheet.Activate
oSheet.Range("A1")="成功"
next
Excel遍历所有工作簿中所有工作表执行宏
如果你的Excel文件里有很多个工作表,希望每个表都执行同一个宏,下面这个Sub就派上用场了——它会循环激活每一张工作表,然后调用名为Macro1的宏。
Sub test() n = Worksheets.Count For i = 1 To n Worksheets(i).Activate Macro1 Next End Sub
当然,记得把Macro1替换成你实际要执行的宏名称。
使用VBS遍历EXCEL
如果不想在Excel里写VBA,直接用VBS从外部操控也是常见做法。下面这段代码会打开指定路径下的Excel文件(比如C:\data.xls),然后逐行逐列读取所有单元格的值,并用消息框逐一显示。
Dim xlApp,xlSheet,xlWorkBookDim iRowCount,iLoop,jLoop,jColumnCount,numAdd
Set xlApp=CreateObject("Excel.Application")
xlApp.Visible=True
Set xlWorkBook=xlApp.Workbooks.Open("C:data.xls")
Set xlSheet=xlWorkBook.Sheets("Sheet1")
iRowCount=xlSheet.UsedRange.Rows.Count
jColumnCount=xlSheet.UsedRange.Columns.Count
For iLoop=1 To iRowCount
For jLoop=1 To jColumnCount
MsgBox(xlSheet.cells(iLoop,jLoop).value)
Next
Next
xlWorkBook.Sa ve
xlWorkBook.Close
xlApp.Quit
注意这里的文件路径是硬编码的,实际使用时可以改成动态传入或者通过对话框选择。
VBScript 编写 自动Excel文件内容到数组并提示输出
有时候我们希望把Excel的数据一次性读到数组中,再通过弹窗逐个输出,并且让弹窗自动关闭(比如1秒后消失)。下面这个脚本就实现了这个逻辑:它会自动读取脚本所在目录下的DataReport.xls文件中的HistoryData工作表,把第5行到第145行的B列数据存入数组,然后用Popup方法弹出提示,每个提示显示1秒后自动关闭。
Dim oExcel,oWb,oSheet
Set oExcel= CreateObject("Excel.Application")
Set oWb = oExcel.Workbooks.Open(dir&"DataReport.xls")
Set oSheet = oWb.Sheets("HistoryData")
Dim i
Dim a(150)
For i = 5 To 145 '145-5+1 = 141
a(i-5) = oSheet.Range("B"&i).Value
print "data=",a(i-5)
next
Set oSheet = Nothing
oExcel.Workbooks.Close
oExcel.Quit '关闭excel.exe'
Function Dir()
Set WshShell = CreateObject("Wscript.Shell")
Dir = WshShell.CurrentDirectory
End Function
Function print (prompt,title)
Set WshShell = CreateObject("Wscript.Shell")
WshShell.Popup prompt &title,1,""
End Function
脚本中自带的Dir()函数用于获取当前目录路径,print函数则封装了弹窗操作——第二个参数控制弹窗停留时间(单位秒),这里设置为1秒。这样在批量读取数据时,既能看到内容,又不会因为不断手动关闭弹窗而打断流程。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















