dim xlApp,xlWorkBook,xlSheet
dim iRowCount,iLoop,numAdd
set xlApp = CreateObject("ExcelApplication")
xlAppVisible = false
set xlWorkBook = xlAppWorkbooksOpen("c:\dataxls")
set xlSheet = xlWorkBookSheets("Sheet1")
iRowCount = xlSheetusedRangeRowsCount
For iLoop = 2 to iRowCount
numAdd=xlSheetCells(iLoop,1)+numAdd
next
xlSheetRange("e2")value=iLoop
For i=1 to 10
xlSheetrange("d" & i)value=int(rnd1000)
next
xlAppcells(9,9)=995
xlWorkBookSave
xlWorkBookClose
xlAppQuit
set xlSheet = Nothing
set xlWorkBook = Nothing
set xlApp = Nothing
msgbox(numAdd)
SubMacro2()''Macro2Macro'DimkAsLongFork=1To200'Windows("新建MicrosoftOfficeExcel工作表(2)xlsx")ActivateActiveCellRange("A1:B5")SelectSelectionCopyWindows("新建MicrosoftOfficeExcel工作表xlsx")ActivateActiveCellRange("A1:B5")SelectActiveSheetPasteWindows("新建MicrosoftOfficeExcel工作表(2)xlsx")ActivateSheets("Sheet2")SelectActiveCellRange("A1:B5")SelectApplicationCutCopyMode=FalseSelectionCopyWindows("新建MicrosoftOfficeExcel工作表xlsx")ActivateActiveCellOffset(0,2)Range("A1:B5")SelectActiveSheetPasteWindows("新建MicrosoftOfficeExcel工作表(2)xlsx")ActivateSheets("Sheet3")SelectActiveCellRange("A1:B5")SelectWindows("新建MicrosoftOfficeExcel工作表xlsx")ActivateNextEndSub
Set oexcel=CreateObject("excelapplication")
Set obook=oexcelWorkbooksOpen("c:\test\excelxls")
Set osheet=obookSheets("sheet1")
'显示第一个工作表A1单元格数据
msgbox osheetcells(1,1)
Set obook=Nothing
Set osheet=Nothing
oexcelQuit
我很在行这样的文件处理,但是你提供的信息不完整。我给你个大致的思路。
确保若打开某一文件,数据就能看见——即不用点其他sheet。建一新Excel,也存到该文件夹。仅打开该新Excel,同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:
Sub Find()
ApplicationScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbookPath & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("xls")
Do
If Not LCase(Match) = LCase(ThisWorkbookName) Then
WorkbooksOpen Match, 0 'open
ActiveSheetCopy Before:=ThisWorkbookSheets(1) 'copy sheet
activesheetname = replace(match,"xls","")
Windows(Match)Activate
ActiveWindowClose 0
End If
Match = Dir$
Loop Until Len(Match) = 0
ApplicationScreenUpdating = 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列,右键,复制,再右键,选择性粘贴,数值;再点菜单的数据,分列,以分隔符分列,下一步,选中逗号,完成。(这些当然也可以通过宏直接完成的)
如果是XP系统,可以使用如下代码
VBS控制Excel的一些常见方法:
(一) 使用动态创建的方法
首先创建 Excel 对象,使用ComObj:
oExcel = CreateObject( "ExcelApplication" )
1) 添加新工作簿:
oExcelWorkBooksAdd
2) 打开已存在的工作簿:
oExcelWorkBooksOpen( "C:\Excel\Demoxls" )
3) 设置第2个工作表为活动工作表:
oExcelWorkSheets(2)Activate
或
oExcelWorksSheets( "Sheet2" )Activate
4) 给单元格赋值:
oExcelCells(1,4)Value = "第一行第四列"
以上就是关于使用vbs读写excel表格数据元素全部的内容,包括:使用vbs读写excel表格数据元素、vbs搜索EXCEL、vbs怎么给excel写入数据,并显示数据。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)