vbs或者vb操作excel

第一个工具,使用vbs,把当前目录下所有的excel文件合并成一个文件,注意:网上有只合并一行的,就是说合并出来的文件只是所有文件第一行的和,而不是所有文件合并,做出来加分。第二个工具,应该是录制一个宏,或者写个函数,原有单元格的内容是1-15,16,17-20这样的内容,,求一个宏或者函数,自动计算,比如第一个应该是15(15-1+1),第二个没有分割的应该是1,第三个应该是4(20-17+1)。跟第一个一样,目录下很多表格,但是这个很难实现所有的,可以每个打开自动生成一行记录结果的。每个做出来试用好了我加分。2011-12-16日16点之前如果没有答案,我就关闭问题

我很在行这样的文件处理,但是你提供的信息不完整。我给你个大致的思路。
确保若打开某一文件,数据就能看见——即不用点其他sheet。建一新Excel,也存到该文件夹。仅打开该新Excel,同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:

Sub Find()
Application.ScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbook.Path & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("*.xls")
Do
If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
Workbooks.Open Match, 0 'open
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet
activesheet.name = replace(match,".xls","")
Windows(Match).Activate
ActiveWindow.Close 0
End If
Match = Dir$
Loop Until Len(Match) = 0
Application.ScreenUpdating = True
End Sub

在此界面直接按F5运行此宏,所有文件的工作表都复制到这个新的工作簿中(这是粗体部分的作用)。你可以用
=SUM(Sheet2:Sheet18B2)
来求这几个Sheet的B2的和。

第二个要求,假设你每个文件都在单元格A1或者A列,可以用以上类似方法把所有记录提取到一个工作表中,然后进入宏界面,插入如下代码:
Function chf(xStr As String) As String
Dim i, j As Integer
Dim xArr() As String
xArr = Split(xStr, ",")
For i = 0 To UBound(xArr)
j = InStr(xArr(i), "-")
If j > 0 Then
chf = chf & "," & Mid(xArr(i), j + 1, 5) - Left(xArr(i), j - 1) + 1
Else
chf = chf & "," & 1
End If
Next i
chf = Right(chf, Len(chf) - 1)
End Function

回到Excel,在B2输入
=chf(A2)
公式向下复制。
然后点B列,右键,复制,再右键,选择性粘贴,数值;再点菜单的数据,分列,以分隔符分列,下一步,选中逗号,完成。(这些当然也可以通过宏直接完成的)
温馨提示:内容为网友见解,仅供参考
无其他回答

用VBS或VB查找文件夹里最新时间的EXCEL里指定的文字,如果有,返回一个对...
If file.Type = "Microsoft Excel Worksheet" And file.DateLastModified > excelFile.DateLastModified Then Set excelFile = file End If Next ' 打开EXCEL文件并查找文字 Set excel = excelFile.OpenAsTextStream(1, -2)Set sheet = excel.Worksheets(1)Set findRange = sheet.Range("A1:Z1000")Se...

vbs或者vb操作excel
确保若打开某一文件,数据就能看见——即不用点其他sheet。建一新Excel,也存到该文件夹。仅打开该新Excel,同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:Sub Find()Application.ScreenUpdating = False Dim MyDir As String MyDir = ThisWorkbook.Path & "\\"ChDrive Left(MyDir, 1...

VB如何通过按钮选择excel文件并导入数据vbs选择按钮
1、在工程中引用Microsoft Excel类型库:从\\"工程\\"菜单中选择\\"引用\\"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择\\"确定\\"。表示在工程中要引用EXCEL类型库。2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.Application Dim xlBook As Excel.WorkBook Dim xlShee...

Excel VB,VBA,VBS的区别是什么?
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。\\x0d\\x0aVBA: Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序...

vbs检查excel重复行,并标示或者删除
注:Range("A1").EntireColumn.Delete 这样是删除A1整列;Range("A1").EntireRow.Delete 这样是删除A1整行;Range("A1").Delete 这是删除A1单元格 A2单元格会移上去;上述命令就好像选中A1单元格后,右击选择 -》删除 ,在弹出对话框中有四个选项。

...用VBS创建一个Excel,并将数据库中的值写入Excel中,但是出现了这样的...
你就把在Excel对应的日期那个文本框的格式改为跟你写的日期一样的格式。比如:2010\/08\/06。那么你就在Excel对应的文本框右击选择文本框设定,表示形式-日期-XXXX\/XX\/XX然后出来的就一样是日期了。。。但是貌似连时、分、秒都显示出来。你就可以在VB后面加上:Private Sub UserForm_Initialize()Me.xx...

如何在VB中向EXCEL插入一条直线
"With ExcelWorkbook.Activesheet y = .Rows("1:4").Height x = .Columns("A:P").Width .Shapes.AddLine 0, y, x, y End With MsgBox "下面退出Excel程序。"ExcelApp.DisplayAlerts=False ExcelApp.Quit VB应该和VBS的一样,不用改变代码,可以直接移植 ...

vbs、和vb.net,vbs和vba有什么区别?
VBScript主要用于网页脚本,而Visual Basic for Applications(VBA)则用于Microsoft Office应用程序,如Excel、Word、Access等,以及支持VBA开发的第三方软件。Visual Basic 6(VB6)可以生成可执行文件(Exe)。Visual Basic .NET(VB.NET)是基于.NET框架的开发语言,语法与VB相似,但更接近C#,用于.NET...

如何用程序往excel中导入vbs
如果你要的功能是在安装的机器上Excel中运行修改Excel文档的话,那么就把VBS改成相应的VB(基本上改动不大)用COM实现;如果你要VBS中的功能能随Excel文件一起用的话,那么就把VBS改成VBA(Excel中的宏)来实现。

EXCEL中自带的VBA和VB有什么区别?
一、性质不同 1、VBA:VBA是VB的一个子集,是使已有的应用程序(EXCEL)自动化。2、VB:VB是设计用于创建应用程序(EXCEL)标准的应用程序。二、运行依赖性不同 1、VBA:运行VBA开发的程序必须依赖于它的父应用程序。2、VB:运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件。

相似回答