中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-02 03:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » vbs对excel操作遇到一问题.不知如何解决.! 查看 2,032 回复 5
楼 主 vbs对excel操作遇到一问题.不知如何解决.! 发表于 2006-08-18 15:37 ·  中国 江苏 苏州 电信
中级用户
★★
过度热情
积分 321
发帖 139
注册 2006-03-21 17:19
20年会员
UID 52521
性别 男
状态 离线
我这里有一目录c:\excel 下有100个文件名不同但数据格式相同的表.
我想把100个excel表里面的第三列复制到一个新的excel test.xls中.
附件result01.xls是100个其中的一个范例.

谢谢.!
附件
result01.zip (8.86 KiB, 下载附件所需积分 1 点, 下载次数: 7)
2 发表于 2006-08-18 17:04 ·  中国 江苏 苏州 电信
中级用户
★★
过度热情
积分 321
发帖 139
注册 2006-03-21 17:19
20年会员
UID 52521
性别 男
状态 离线
在网上查相关信息,好象是说用VBS缺少一些库函数支持不能实现, 好象的用VB,VBA才行..! 是真的么? 难道VBS的应用就这么狭小?
3 发表于 2006-08-18 17:47 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
hmm,只知道调用的是 Excel.Application 对象

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
4 发表于 2006-08-18 22:14 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
『第 2 楼』:

在网上查相关信息,好象是说用VBS缺少一些库函数支持不能实现, 好象的用VB,VBA才行..! 是真的么? 难道VBS的应用就这么狭小?


vbs本身其实并没有什么太强大的功能,脚本嘛,主要的用途还是用来自动完成需要重复或监管的工作,至于那么多的功能,其实都是依靠系统以及应用程序提供的支持。所以你实现不了某个功能不能说VBS不行,应该说你的系统或者应用程序没有相应的功能。
关于用VBS操作Excel,如楼上所述,需要调用Excel.Application 对象,下面是摘自《The Portable Script Center》中的一篇《Read an Excel Spreadsheet》,你可以参考一下:

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open _
("C:\Scripts\New_users.xls")

intRow = 2

Do Until objExcel.Cells(intRow,1).Value = ""
Wscript.Echo "CN: " & objExcel.Cells(intRow, 1).Value
Wscript.Echo "sAMAccountName: " & objExcel.Cells(intRow, 2).Value
Wscript.Echo "GivenName: " & objExcel.Cells(intRow, 3).Value
Wscript.Echo "LastName: " & objExcel.Cells(intRow, 4).Value
intRow = intRow + 1
Loop

objExcel.Quit


另外我印象中利用ADODB.Connection对象也是可以读取excel的,不过由于没有接触过excel,一直没有尝试过,你可以自行搜索一下。
5 发表于 2006-08-20 09:52 ·  中国 江苏 苏州 电信
中级用户
★★
过度热情
积分 321
发帖 139
注册 2006-03-21 17:19
20年会员
UID 52521
性别 男
状态 离线
谢谢各位!!!.Excel.Application之前也有所了解.! 只是在网上没找到Excel.Application
库的更多用法.! 如新建一个excel,或新建一个worksheet.判断一列结尾符(考虑到一列可能中间有空格。情况的判断。),等。!。
呵呵。! 算了我还是用vb去实现把。
对了问一下electronixtar ”hmm“是什么网络术语?呵呵。
6 VBS可以对XLS文件进行读写,本文只有读取表头示范 发表于 2006-09-24 09:57 ·  新加坡 腾讯云
初级用户
积分 73
发帖 30
注册 2006-09-18 08:35
19年会员
UID 62944
状态 离线
'''XLS文件表头检查VBS脚本,请修改为你所需处:
''' ---------------MOBO[墨伯]原创 2006-09-23
'''取自本人代表作:成绩统计分析软件-一步到位[提升版],COM加载项,文件形式:dll
Dim Hstr: Dim XLS

Main

'''获取当前文件夹:---------------------------------------
Sub Main()

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("检查当前文件夹下所有XLS表头格式.vbs")
HERE = objFSO.GetParentFolderName(objFile)

Const FILE_NAME = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(HERE)

'''遍历当前文件下所有文件:-----------------------------------
For Each strFileName In objFolder.Items
XLS = objFolder.GetDetailsOf(strFileName, FILE_NAME)
If Right(XLS, 4) = ".xls" Then
getHead HERE & "\" & XLS
End If
Next

'''调用过程---产生网页:
link Hstr

End Sub

'''获取电子表格之表头:
Sub getHead(path)
Set XLApp = CreateObject("Excel.Application")
Set xlBook = XLApp.Workbooks.Open(path)

endi = xlBook.Sheets(1).UsedRange.Columns.Count
path = Replace(path, " ", "%20")
lnkstr = "<a href=" & path & ">"
Hstr = Hstr & lnkstr & XLS & "" & "</a><br>"
For i = 1 To endi
Hstr = Hstr & xlBook.Sheets(1).Cells(1, i) & " "
Next
Hstr = Hstr & "<br>" & "<br>"

XLApp.Quit
Set XLApp = Nothing
End Sub

'''产生网页,显示结果:
Sub link(ahref)
Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank"
objExplorer.Toolbar = 1
objExplorer.StatusBar = 1
objExplorer.Width = 640
objExplorer.Height = 480
objExplorer.Left = i * 10
objExplorer.Top = i * 15
objExplorer.Visible = 1
objExplorer.Document.Body.InnerHTML = ahref
End Sub
论坛跳转: