2017-09-11 1 views
1

나는 Excel 파일을 만들고 관리하는 클래스를 호출해야하는 프로젝트에서 작업하고 있습니다. 하지만 정의되지 않은 이유로 내 양식에서이 함수를 호출 할 수 없습니다. 다음과 같이 예외를 반환합니다. System.TypeInitializationException. 나는 수업을 확인했는데, 무엇이 잘못되었는지를 보지 못했습니다.System.TypeInitializationException 클래스에 대한 액세스

내가 클래스 내 Excel_Management 통화 할 양식 :

Imports System.Diagnostics 
Imports System.Windows.Forms 

Public Class Proc_Form 

Private excel_Manage = New Excel_Management 
Public Shared ok As Boolean = New Boolean 

If My.Settings.check_Directory = False Then 
      If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then 
       My.Settings.path = FolderBrowserDialog1.SelectedPath 
       My.Settings.check_Directory = True 
       'My.Settings.Save() 
       MsgBox(My.Settings.path) 
       excel_Manage.check_Excel() 
     End If 

Excel_Management 클래스 :

Imports Microsoft.Office.Interop 
Imports Microsoft.Office.Interop.Excel 
Imports System.Windows.Forms 
Imports System.Text.RegularExpressions 
Imports System.String 

Public Class Excel_Management 
    Public Shared appExcel As Excel.Application = New Excel.Application 
    Public Shared wsExcel As Excel.Worksheet = New Excel.Worksheet 
    Public Shared wbExcel As Excel.Workbook = New Excel.Workbook 
    Public Shared file_name As String = "Name" & DateTime.Now.ToString("yyyy") & ".xls" 
    Public Shared sheet_name As String = "S " & DatePart(DateInterval.WeekOfYear, Now()) 
    Public Shared check_test As Boolean = False 
    Public Shared excel_check As New Proc_Form 
    Public Shared misValue As Object = System.Reflection.Missing.Value 
    Public Shared message, title, defaultValue As String 
    Public Shared myValue As Object = New Object 
    Public Shared i As Integer = 1 
    Public Shared match As Match = Regex.Match(myValue, "[^a-z0-9]") 

Shared Sub check_Excel() 
     If appExcel Is Nothing Then 
      MsgBox("No Excel Detected !") 
      Return 
     Else 
      create_Excel() 
     End If 
    End Sub 

당신이 나에 접속을 허용하지 않습니다 내 코드에서 어떤 문제를 볼 수 내 수업을 능가합니까?

미리 감사드립니다.

+0

스택 추적으로 예외 전체를 게시해야합니다. 그렇지 않으면 주어진 도움말은 추측 일뿐입니다. –

답변

0

나는 인터페이스이기 때문에 당신이 그것을하고있는 방식으로 New Excel.Workbook을 만들 수 없다고 생각합니다.

대신보십시오 :

Public Shared wbExcel As Excel.Workbook = appExcel.Workbooks.Add(System.Reflection.Missing.Value) 
여기에서

: Strange error on Excel Workbook input, 또는 그 질문에 대한 다른 솔루션 중 하나.

또한 Regex.Match은 개체와 일치 할 수 없습니다. 나는 myValue이 무엇인지 모르겠지만, 하나의 옵션은 수 있습니다 무엇에 따라 : 당신이 그들에 깰 Visual Studio에서 디버거를 얻는 경우에

Regex.Match(myValue.ToString, "[^a-z0-9]") 

마지막으로, 이러한 오류가 당신에게 자명 할 것이다. "DEBUG"메뉴> "예외 ..."로 이동하여 "Throw"열에 "Common Language Runtime Exceptions"옆에 체크 표시를하십시오. 그러면 다른 오류를 디버그하는 데 도움이됩니다.

+0

대단히 감사합니다. regex.match였습니다. 고마워. – foxy

관련 문제