对于一个项目,我必须能够从 Excel 表中读取信息,然后将该信息传递给 PLC。可悲的是,当我使用“Dim App As New Excel.Application”时遇到问题,由于某种原因,这会使我的应用程序在表单显示在屏幕上之前崩溃,因此我最终没有表单。我得到的错误是:
OpHoopVanZegen.exe 中出现“System.InvalidOperationException”类型的未处理异常
这发生在“Application.Designer.vb”中
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.OpHoopVanZegen.Form1
End Sub
^^^出错的地方^^^
附加信息:无法将 COM 对象从 System.__ComObject 类型转换为 interfacetype
谁能解释我发生了什么和/或我做错了什么?
------------------------------------------------ 我的表单代码:
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Dim App As New Excel.Application
Dim svrOPC As New OPCAutomation.OPCServer
Dim WithEvents grpOPC As OPCAutomation.OPCGroup
Private Sub connectToOPC_Click(sender As Object, e As EventArgs) Handles connectToOPC.Click
If svrOPC.ServerState = OPCAutomation.OPCServerState.OPCDisconnected Then
Call svrOPC.Connect("Kepware.KEPServerEX.V5")
End If
Me.TBStatusOPC.Text = udfOPCServerState(svrOPC.ServerState)
End Sub
Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated
Me.TBStatusOPC.Text = udfOPCServerState(svrOPC.ServerState)
End Sub
Private Function udfOPCServerState(ByVal intOPCServerState As Integer) As String
Select Case intOPCServerState
Case OPCAutomation.OPCServerState.OPCRunning
udfOPCServerState = "Running"
Case OPCAutomation.OPCServerState.OPCFailed
udfOPCServerState = "Failed"
Case OPCAutomation.OPCServerState.OPCNoconfig
udfOPCServerState = "No Config"
Case OPCAutomation.OPCServerState.OPCSuspended
udfOPCServerState = "Suspended"
Case OPCAutomation.OPCServerState.OPCTest
udfOPCServerState = "Test"
Case OPCAutomation.OPCServerState.OPCDisconnected
udfOPCServerState = "Disconnected"
Case Else
udfOPCServerState = "Unknown"
End Select
End Function
Private Sub LoadOrderToPLC_Click(sender As Object, e As EventArgs) Handles LoadOrderToPLC.Click
End Sub
结束类