借鉴的是这个链接的代码
https://support.industry.siemens.com/cs/document/78668993/wincc数据报表实现方法介绍?dti=0&lc=zh-CN
前面是做这个测试遇到的问题,最后附代码
问题一:做关闭文件函数:
ExcelApp.ActiveWorkbook.Save
ExcelApp.Workbooks.Close
ExcelApp.Quit
如果照这个顺序去写的话会出现弹出窗,需要点击才会关闭
问题二:If TypeName(ExcleApp) = "Application" Then
end if
这段话写了两遍是因为实际运行时,第一次这个判断条件不能实现。
问题三:我做的时候是创建出来的文件名就是worksheets的名字,这个对我的需求来说,无伤大雅,所以就没有去深究。
sub CloseFile()'关闭文件
On Error Resume Next
Dim excelApp,excelWorks,path
path = "D:\DATA\test.xls"
Set excelApp = GetObject(,"Excel.Application")
If TypeName(excelApp)="Application" Then
End If
If TypeName(excelApp)="Application" Then
For Each excelWorks In excelApp.WorkBooks
If excelWorks.FullName=path Then
excelApp.WorkBooks.Close
excelApp.Quit
excelApp.ActiveWorkBook.Save
Set excelApp = Nothing
Exit For
End If
Next
End If
end sub
sub WriteFile()
On Error Resume Next
Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible=True
objExcelApp.WorkBooks.Open "D:\DATA\test.xls"
objExcelApp.worksheets("test").active
With objExcelApp.worksheets("test")
Dim i,j
For i=1 To 5
.cells(1,i)="1"
Next
For j=1 To 5
.cells(j,1)="2"
Next
End With
end sub
方便了解.cells(x,y)那个是行那个是列,本来是像贴图片的,但是编辑是图片预览上是乱码就用空格和数字简陋的展示一下
上图代码运行结果:2 1 1 1 1
2
2
2
2