Board logo

标题: vbs对excel操作遇到一问题.不知如何解决.! [打印本页]

作者: piziliu2004     时间: 2006-8-18 15:37    标题: 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)

作者: piziliu2004     时间: 2006-8-18 17:04
在网上查相关信息,好象是说用VBS缺少一些库函数支持不能实现, 好象的用VB,VBA才行..! 是真的么? 难道VBS的应用就这么狭小?
作者: electronixtar     时间: 2006-8-18 17:47
hmm,只知道调用的是 Excel.Application 对象
作者: 3742668     时间: 2006-8-18 22:14


  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,一直没有尝试过,你可以自行搜索一下。
作者: piziliu2004     时间: 2006-8-20 09:52
谢谢各位!!!.Excel.Application之前也有所了解.! 只是在网上没找到Excel.Application
库的更多用法.! 如新建一个excel,或新建一个worksheet.判断一列结尾符(考虑到一列可能中间有空格。情况的判断。),等。!。
呵呵。! 算了我还是用vb去实现把。
对了问一下electronixtar    ”hmm“是什么网络术语?呵呵。
作者: mobo     时间: 2006-9-24 09:57    标题: 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