程序有几处不懂,请帮忙注释一下,谢谢

‘先定义变量
Dim objExcelApp,objExcelBook,objExcelSheet 
Dim tagyali1,tagyali2,tagyali3,tagyali4 
Dim tagliuliang1,tagliuliang2
Dim tago2 
Dim tagshijian,sheetname 
Dim i,j 
Dim msg 

‘声明
Set tagyali1=HMIRuntime.Tags("MicroWin.fuyang.v.p1") 
Set tagyali2=HMIRuntime.Tags("MicroWin.fuyang.v.p2") 
Set tagyali3=HMIRuntime.Tags("MicroWin.fuyang.v.p3") 
Set tagyali4=HMIRuntime.Tags("MicroWin.fuyang.v.p4") 
Set tagliuliang1=HMIRuntime.Tags("MicroWin.fuyang.v.l1") 
Set tagliuliang2=HMIRuntime.Tags("MicroWin.fuyang.v.lt2") 
Set tago2=HMIRuntime.Tags("MicroWin.fuyang.v.o2")
msg="ok" 
sheetname="sheet1" 

‘判断是否打开了模版,如果打开先关闭保存
On Error Resume Next 
Dim ExcelApp,ExcelBook 
Set ExcelApp=GetObject(,"Excel.Application") 
If TypeName(ExcelApp)="Application" Then 
For Each ExcelBook In ExcelApp.WorkBooks 
If ExcelBook.FullName="E:\biao.xls" Then 
ExcelApp.ActiveWorkbook.Save 
ExcelApp.Workbooks.Close 
ExcelApp.Quit 
Set ExcelApp=Nothing
Exit For 
End If 
Next 
End If 

‘创建对象
Set objExcelApp=CreateObject("Excel.Application") 
open file 
objExcelApp.Visible=True 
objExcelApp.Workbooks.Open"E:\biao.xls" 
objExcelApp.Worksheets(sheetname).Activate 

‘清除模版数据
With objExcelApp.Worksheets(sheetname) 
For i=5 To 25 
For j=1 To 8 
.cells(i,j)=Null 
Next 
Next 
For i=26 To 26 
For j=1 To 7 
.cells(i,j)=Null 
Next 
Next 
End With 

‘实时数据写入
tagshijian=Now 
objExcelApp.Worksheets(sheetname).cells(2,2).value=tagshijian 
For i=5 To 25 
with objExcelApp.Worksheets(sheetname) 
.cell(i,1).value=tagshijian 
tagyali1.Read 
.cell(i,2).value=tagyali1.value
tagyali2.Read 
.cell(i,3).value=tagyali2.value 
tagyali3.Read 
.cell(i,4).value=tagyali3.value 
tagyali4.Read 
.cell(i,5).value=tagyali4.value 
tagliuliang1.Read 
.cell(i,6).value=tagliuliang1.value 
tagliuliang2.Read 
.cell(i,7).value=tagliuliang2.value 
tago2.Read 
.cell(i,8).value=tago2.value 
End With 
Next 
MsgBox msg 
‘关闭保存
Dim patch,filename 
filename=CStr(Month(Now))&CStr(Day(Now))+CStr(Hour(Now))&CStr(Minute(Now)) 
patch="E:\"&filename&".xls" 
objExcelApp.ActiveWorkbook.SaveAs patch 
objExcelApp.Workbooks.Close 
objExcelApp.Quit 
Set objExcelApp=Nothing
请问:
objExcelApp.Worksheets(sheetname).Activate 这一行语句有什么用?前边一行语句不是已经打开表格了吗?这这一行语句不要行不行?

最佳答案

Excel打开之后其实是一个工作薄(Workbook),里面有三个表。
一般只用一张表就够了,而且默认的活动表就是表1(sheet1)。
objExcelApp.Worksheets(sheetname).Activate就是把表一置为活动表格,数据就写在这里。
如果你只用这一张表,此工作薄的另两张不用,那么加不加这句都行,打开excel直接就是第一张表示活动的。
如果其中有切换,要向第二张地三张写数,那就要重新赋值sheetname了。

提问者对于答案的评价:
谢谢,原来是这样.

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc263794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午2:31
下一篇 2019年6月11日 上午2:32

相关推荐

  • WINCC7.2卸载问题

    电脑上安装了一套7.2版本的,但现在设备升级了,已经用到7.4版本的,我现在能不能直接把7.2版本的卸载,安装7.4版本的,需要注意哪些问题,谢谢! 最佳答案 卸载卸不干净,建议你…

    SIMATIC WinCC 2021年7月5日
  • 用户归档未实现

    我用网站上下了一个fortest例子,往用户归档中写数据成功了,但是就在查询那里出了问题,数据查询不到,在打印时能出来那个表,但是没有数据,比如在报表编辑器里ODBC所连接的数据源…

    SIMATIC WinCC 2019年6月11日
  • 报表中变量记录表格的时间能不能同一个

    报表中变量记录表格的时间能不能同一个 每次显示处理都是一个变量一个时间,怎么能共用同一个时间啊? 最佳答案 SIMATIC WinCC V …

    SIMATIC WinCC 2019年6月11日
  • wincc按键设定

    我建立了一个输入输出域,目的是将输入的字符变量给到PLC,通过PLC转到二级控制进行判断.为了将输入的字符变量显示在输入输出域上,我将输出值连到我事先建好的内部变量(文本变量16位…

    SIMATIC WinCC 2019年6月11日
  • 谁有三菱FX opc sever

    请问各位大师:谁有三菱FX opc sever 软件 能不能发给我,我想用wincc监控三菱FX2N系列PLC。能不能发到我的邮箱,我的邮箱…

    SIMATIC WinCC 2019年6月11日
  • 关于Wincc中方法的应用

    我刚接触Wincc,想知道一下Wincc中Function到底怎么用,其实就是想自己用vbs编写一个方法,然后调用(请用vbs)。不知道有谁能指点一下,以一个最简单的例子为例,如何…

    SIMATIC WinCC 2019年6月11日
  • 怎么将外部变量和全局变量相连

    当做画面模板时,为了不使用变量前缀。。用了个全局变量。怎么让全局变量使用的是外部变量啊?就是在画面模板操作的不是带前缀的外部变量。 最佳答案 楼主是希望画面模版中某些不使用变量前缀…

    SIMATIC WinCC 2019年6月11日
  • 有7台313C-2DP和WINCC FLEXBLE连接

    有7台313C-2DP和AUDIT   FOR  WINCC FLEXBLE连接,电脑配5611。问题1.这样配置可以组…

    SIMATIC WinCC 2019年6月11日
  • TP177屏可OS更新,无法下载屏程序

    一个原厂程序,无法下载到TP177中(下载时无报警信息,闪退。可OS更新,更新完依旧),更改屏类型,但可下载到TP277中。别的程序可下载到这个TP177中。各位大侠请帮我分析一下…

    SIMATIC WinCC 2020年11月1日
  • WINCC在运行状态下,如何更改用户密码

    如何用一个按钮来调出一个对话框,让用户来自己设定密码。 最佳答案 参考wincc中如何修改密码?  http://www.ad.siemens.com.cn/c…

    SIMATIC WinCC 2019年6月11日