vbs或者vb操作excel 如何利用vbs打开excel

经验直达:

  • 如何利用vbs打开excel
  • vbs或者vb操作excel

一、如何利用vbs打开excel


【vbs或者vb操作excel 如何利用vbs打开excel】VBS打开Excel常见方法
  1. dim oExcel,oWb,oSheet
    Set oExcel= CreateObject("Excel.Application")
    Set oWb = oExcel.Workbooks.Open("E:其他新装电话表.xls")
    Set oSheet = oWb.Sheets("Sheet1")
    MsgBox oSheet.Range("B2").Value '#提取单元格B2内容
    '.....
  2. 如果是XP系统,可以使用如下代码 :
    Dim objFileDlg
    Set objFileDlg = CreateObject("UserAccounts.CommonDialog")
    objFileDlg.Filter = "Excel File (*.xls) |*.xls"
    If objFileDlg.ShowOpen Then
    msgbox "您选择的文件是:" & objFileDlg.FileName & vbCrLf
    End If


二、vbs或者vb操作excel


我很在行这样的文件处理,但是你提供的信息不完整 。我给你个大致的思路 。
确保若打开某一文件,数据就能看见——即不用点其他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), j1, 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列,右键,复制,再右键,选择性粘贴,数值;再点菜单的数据,分列,以分隔符分列,下一步 , 选中逗号,完成 。(这些当然也可以通过宏直接完成的)

相关经验推荐