2015-01-09 1 views
0

주석 노트 수식으로 '고려VS 그때 CSV로 엑셀로 저장 다음 F2에 수식을 추가 엑셀 상호 운용성과 vb.net에서 엑셀 파일을 열려고 시도하고

는 사람이 어떻게 연결하는 날 포인트 '는 공식 CS 내가 쓰기의 번호로'비주얼 스튜디오는 의견이 아닌 수식으로 그것을 고려

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    Dim newFileName As String = "Libanpost" + Date.Today.ToString("ddMMyyyy") + ".csv" 
    Dim oExcelFile As Object 



    Try 
     oExcelFile = GetObject("c:\database", "Excel.Application") 
    Catch 
     oExcelFile = CreateObject("Excel.Application") 
    End Try 

    oExcelFile.Visible = True 
    Dim strfilename As String = "Libanpost" + Date.Today.ToString("ddMMyyyy") + ".xls" 
    Dim strFolderPath As String = "c:\database" 

    oExcelFile.Workbooks.Open(strFolderPath + "\" + strfilename) 
    Dim oExcelsheet As Excel.Worksheet 
    oExcelsheet = oExcelFile.sheets("table1") 
    oExcelsheet.Range("f1").Value = "CRC" 
    oExcelsheet.Range("f2").Formula = " = IF(LEN(A2)=2,(CONCATENATE("'00000",A2)),IF(LEN(A2)=3,CONCATENATE("'0000",A2),IF(LEN(A2)=4,CONCATENATE("'000",A2),IF(LEN(A2)=5,CONCATENATE("'00",A2),IF(LEN(A2)=6,CONCATENATE("'0",A2),A2)))))" 


    oExcelFile.DisplayAlerts = False 


    oExcelFile.ActiveWorkbook.SaveAs(Filename:=strFolderPath + "\" + newFileName, FileFormat:=Excel.XlFileFormat.xlCSV, CreateBackup:=False) 


    oExcelFile.ActiveWorkbook.Close(SaveChanges:=False) 

    Dim file_count As Integer = File.ReadAllLines(strFolderPath + "\" + newFileName).Length 
    MsgBox(file_count) 


    oExcelFile.DisplayAlerts = True 


    oExcelFile.Quit() 


    oExcelFile = Nothing 
+0

두 개의 작은 따옴표 '' '를 사용하십시오. – CodeCaster

+1

가능한 복제본 [String.Format()의 단일 인용 이스케이프] (http://stackoverflow.com/questions/1351074/escaping-single-quote-in-string-format) – CodeCaster

답변

1

문제는 당신이 문자 그대로 당신의 문자열 내부에 큰 따옴표 (")를 포함 한 것입니다. 첫 번째 더블 문자열 내부의 따옴표는 문자열의 끝을 의미하며, 주석의 시작을 나타내는 작은 따옴표가옵니다. 문자열 리터럴에 큰 따옴표를 포함 시키면 두 개가 필요합니다. 다음은 수정 된 문장입니다 (읽기 쉽도록 세 줄로 나눕니다).

oExcelsheet.Range("f2").Formula = "=IF(LEN(A2)=2,(CONCATENATE(""'00000"",A2))," _ 
    & "IF(LEN(A2)=3,CONCATENATE(""'0000"",A2),IF(LEN(A2)=4,CONCATENATE(""'000"",A2)," _ 
    & "IF(LEN(A2)=5,CONCATENATE(""'00"",A2),IF(LEN(A2)=6,CONCATENATE(""'0"",A2),A2)))))" 
+0

감사합니다 youu blackwood :) – user3619254