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

‘先定义变量
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

相关推荐

  • 还是关于PCS7改造

    上一个贴子中,我问了关于两个系统融合的问题,得到了专家们的积极指导.现详细说明一下情况,请各位专家给个意见.A系统为PCS7:CPU417-4H,1对冗余服务器,6台操作站B系统为…

    SIMATIC WinCC 2019年6月11日
  • wincc 6.0 和SQL 2000互相访问

    使用WINCC制作的监控系统,现在有几个问题请教: 1、关于该WINCC的数据,如历史记录等保存在SQL2000的数据库中的哪个表中,如何通过WINCC以外的程序访问WI…

    SIMATIC WinCC 2019年6月11日
  • wincc安装问题

    此系统中没有安装MS安全补丁。 该 WinCC 版本需要以下软件:      Window…

    SIMATIC WinCC 2019年6月11日
  • wincc做cpu226的监控

    wincc组态软件通过CP243-1连接cpu226,需要哪些条件? 最佳答案 请参考:如何用Ethernet建立S7-200与WinCC之间的连接? 解答:要求有下列组…

    SIMATIC WinCC 2017年11月18日
  • wincc 7.0 使用手册或系统手册

    你好,谁有wincc 7.0 使用手册或系统手册。最好中文的。。 最佳答案 参见:求WinCC6.2和WinCC7.0的中文版入门手册+使用手册http://w…

    SIMATIC WinCC 2017年11月29日
  • wincc趋势图显示实时数据不定时出现一条横线

    我是用WINCC7.4 趋势图实时显示积累和实时数据,不定时会出现一条直线的情况,请问是什么原因,仪表数据是MODBUS-DP-以太网传送到工控机,5秒采集一次数据,请问…

    2021年7月5日
  • WINCC画面铺满电脑的问题?

    WINCC画面有自适应功能吗?我现在同一个项目文件,换了下电脑主机,显示器都一样的?怎么画面就不满屏了?我要是一个项目文件,放到另一个项目,我还得重新排版?这样每次工作量不就很大了…

    2021年7月5日
  • error(00540:operands must be arithmetic

    编写了一个进行算术运算的函数,结果提示多屋:error(0054):operands of *,/ must be arithme…

    SIMATIC WinCC 2017年6月24日
  • wincc的c脚本操作一个控件

    如何写一个简单的程序,,,可以操作一个控件,比如mscomm串口控件,winsock套接字控件,,,,用c脚本 最佳答案 如何在 WinCC 运行系统中通过串口…

    SIMATIC WinCC 2017年6月8日
  • S7 OPC通信

    我有个项目CPU317-2pn/dp+cp343-1与另外一家公司的PC机做OPC通信,请问一下1.需不需要在我S7项目里面组态PC Station,2.如果需要组态,P…

    SIMATIC WinCC 2017年6月27日