展开查看
1表格里的时间是格林威治时间怎么改为北京时间?
2表格里的消息文本只能显示英文或者字符,中文成问号,(格式已经改为文本)
请详细指点一下
提问者:后最
1、你可以把系统时间的时区直接改成格林威治时区;或者用当前时间减去8小时(东8区比格林威治时间早8小时)
2、你的小心文本是怎么写进去的?看看你脚本中定义的变量类型,你先定义一个变量,赋值字符串常数然后写到excel中看看。感觉是你的脚本问题。你把你的脚本发上来看看,实在不行到论坛讨论。
Sub OnClick(ByVal Item)
Dim sPro,sDsn,sSer,sCon,conn,sSql,oRs,oCom
Dim tagDSNName
Dim m,i
Dim objExcelApp,objExcelBook,objExcelSheet,sheetname
Dim MySqlStr
Set MySqlStr = HMIRuntime.Tags("MySqlStr")
item.Enabled = False
On Error Resume Next
sheetname="Sheet1"
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
objExcelApp.Workbooks.Open "C:\WinCCWriteExcel\excel_model.xls"
objExcelApp.Worksheets(sheetname).Activate
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
tagDSNName.Read
sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "Catalog=" &tagDSNName.Value& ";"
sSer = "Data Source=PC201501221109\WinCC"
sCon = sPro + sDsn + sSer
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = sCon
conn.CursorLocation = 3
conn.Open
MySqlStr.Read
sSql = "ALARMVIEW:Select * FROM AlgViewCHT "&MySqlStr.Value
MsgBox sSql
HMIRuntime.Trace "Sql is: " & sSql & vbCrLf
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = sSql
'填充数据到Excel中
Set oRs = oCom.Execute
m = oRs.RecordCount
If (m > 0) Then
oRs.MoveFirst
i=3
Do While Not oRs.EOF
objExcelApp.Worksheets(sheetname).cells(i,1).value= CStr(oRs.Fields(0).Value)
objExcelApp.Worksheets(sheetname).cells(i,2).value= CStr(oRs.Fields(1).Value)
objExcelApp.Worksheets(sheetname).cells(i,3).value= CStr(oRs.Fields(2).Value)
objExcelApp.Worksheets(sheetname).cells(i,4).value= CStr(oRs.Fields(37).Value)
oRs.MoveNext
i=i+1
Loop
oRs.Close
Else
MsgBox "没有所需数据……"
item.Enabled = True
Set oRs = Nothing
conn.Close
Set conn = Nothing
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp= Nothing
Exit Sub
End If
'释放资源
Set oRs = Nothing
conn.Close
Set conn = Nothing
'生成新的文件,关闭Excel
Dim patch,filename
filename=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))&CStr(Hour(Now))&CStr(Minute(Now))&CStr(Second(Now))
patch= "c:\"&filename&"_gexun.xls"
objExcelApp.ActiveWorkbook.SaveAs patch
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp= Nothing
MsgBox "成功生成数据文件!"
item.Enabled = True
End Sub