为何无法循环

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
 int i;

 #pragma code ("kernel32.dll")//调用动态链接库

 VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);

 #pragma code ()

 #pragma code("Shell32.dll")//调用动态链接库

 VOID ShellExecuteA(HWND, LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , INT);

 #pragma code()

 char FileName[30] = "";    

 SYSTEMTIME sysTime;

 __object* pExcel = NULL; //建立 pExcel 指针 用来对 EXCEL 进行操作

 HWND handle=NULL;

 handle=FindWindow(NULL,"WinCC-运行系统 – ");

 GetLocalTime(&sysTime);

 //***********************************

 SetTagWord("Minute",sysTime.wMinute);

 i=GetTagWord("Minute")+2;

 if (i>26)   { GetTagWord("Minute")  ;}

 else    if (i<=26)  

 {

 sprintf(FileName,"d:\\Day_Report_%02d-%02d-%02d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);

 pExcel = __object_create("Excel.Application"); 

 pExcel->Visible = 0;//控制生成的excel文件是否可见,当1时,生成excel文件时可见.

 pExcel->Workbooks ->Open (FileName);

 pExcel->Worksheets("sheet1")->Cells(i,1)->Value=GetTagChar("shijian");//Return-Type: char* 读取当前计算机名

 pExcel->Worksheets("sheet1")->Range("X2")->Value=GetTagChar("@CurrentUser");//Return-Type: char* 读取当前操作员

 pExcel->Worksheets("sheet1")->Cells(i,2)->Value=GetTagChar("TAG1");

 pExcel->Worksheets("sheet1")->Cells(i,3)->Value=GetTagFloat("TAG2"); 

 pExcel->Worksheets("sheet1")->Cells(i,4)->Value=GetTagFloat("TAG3");  

 pExcel->Worksheets("sheet1")->Cells(i,5)->Value=GetTagFloat("TAG4");  

 pExcel->Worksheets("sheet1")->Cells(i, 6)->Value=GetTagFloat("TAG5");    

 pExcel->Worksheets("sheet1")->Cells(i,7)->Value=GetTagFloat("TAG6"); 
 pExcel->ActiveWorkbook->Save;//As(FileName);//存盘~

 pExcel->ActiveWorkbook->PrintPreview();//可以预览

 //if (i>=27)  {  pExcel->ActiveWorkbook->PrintOut();  }//直接打印

 pExcel->Workbooks->Close();//关闭文件

 pExcel->Quit();//退出Excel

 __object_delete(pExcel); 

 }
 }
 此段脚本是我在网上的找的一段从Wincc向EXCEL写数据的实例循环周期为1分钟,原来是横向按列写数据的(即一变量对应一行),后来改动了下写数据格式,发现无法实现换行写数据,没查出原因来,请前辈们指点下

最佳答案

是否换行主要i有没有变化,从脚本中可以看出i取决与当前系统时间的分钟。
 可能的原因是Minute变量不存在。

提问者对于答案的评价:
你好107,我建了Minute变量,全局脚本的触发周期选1S,监控Minute变量是循环变化的,可对应的换行写数据还是无法实现,也注意了应用进程里的EXCEL程序

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

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

相关推荐