|
piziliu2004
中级用户
过度热情
积分 321
发帖 139
注册 2006-3-21
状态 离线
|
『楼 主』:
vbs对excel操作遇到一问题.不知如何解决.!
我这里有一目录c:\excel 下有100个文件名不同但数据格式相同的表.
我想把100个excel表里面的第三列复制到一个新的excel test.xls中.
附件result01.xls是100个其中的一个范例.
谢谢.!
附件
1: result01.zip (2006-8-18 15:37, 8.86 K, 下载附件所需积分 1 点
,下载次数: 7)
|
|
2006-8-18 15:37 |
|
|
piziliu2004
中级用户
过度热情
积分 321
发帖 139
注册 2006-3-21
状态 离线
|
『第
2 楼』:
在网上查相关信息,好象是说用VBS缺少一些库函数支持不能实现, 好象的用VB,VBA才行..! 是真的么? 难道VBS的应用就这么狭小?
|
|
2006-8-18 17:04 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
3 楼』:
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'>" |
|
2006-8-18 17:47 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
4 楼』:
Quote: | 『第 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,一直没有尝试过,你可以自行搜索一下。
|
|
2006-8-18 22:14 |
|
|
piziliu2004
中级用户
过度热情
积分 321
发帖 139
注册 2006-3-21
状态 离线
|
『第
5 楼』:
谢谢各位!!!.Excel.Application之前也有所了解.! 只是在网上没找到Excel.Application
库的更多用法.! 如新建一个excel,或新建一个worksheet.判断一列结尾符(考虑到一列可能中间有空格。情况的判断。),等。!。
呵呵。! 算了我还是用vb去实现把。
对了问一下electronixtar ”hmm“是什么网络术语?呵呵。
|
|
2006-8-20 09:52 |
|
|
mobo
初级用户
积分 73
发帖 30
注册 2006-9-18
状态 离线
|
『第
6 楼』:
VBS可以对XLS文件进行读写,本文只有读取表头示范
'''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
|
|
2006-9-24 09:57 |
|