2013-03-01 24 views
0

」的文件,而不是「有按鈕點擊一個代碼,其中的工作簿保存到本地文本文件獲得「預計不

工作簿包含以下信息:

(3498,'TAT_UNALLOCTRADESREC','STRING','IF(STRING(C5)= STRING(「TCE - External Hedge」),STRING(「E」),IF(STRING(C5) = STRING(「TCE-內部對衝」),STRING(「I」),STRING(C5)))');

但是輸出如同CRITICAL;

insert into ifparam values(3498,'TAT_UNALLOCTRADESREC','STRING','IF(STRING(C5)=STRING(""TCE - External Hedge""),STRING(""E""),IF(STRING(C5)=STRING(""TCE - Internal Hedge""),STRING(""I""),STRING(C5)))'); 

問題是在以往任何時候有輸出「我們得到了‘’ 誰能幫助我得到這個,因爲它是在工作簿即;單一雙引號」,而不是「」

如果需要更改代碼,請提出建議。 代碼使用:

Private Sub CommandButton1_Click() 
    Dim xlBook As Workbook, xlSheet As Worksheet 
    Dim strOutputFileName As String 
    Dim n As Long, i As Long, j As Long 
    Dim MyData As String, strData() As String, MyArray() As String 
    Dim strPath As String 

    strPath = ActiveWorkbook.Path '<~~ \\plyalnppd3sm\d$\Temp\Arun\TAT\ 

    ThisWorkbook.SaveCopyAs strPath & "\Temp.xls" 

    Set xlBook = Workbooks.Open(strPath & "\Temp.xls") 

    For Each xlSheet In xlBook.Worksheets 
     If xlSheet.Name <> "User_provided_data" Then 
      strOutputFileName = strPath & "\" & xlSheet.Name & ".zup" 
      xlSheet.SaveAs Filename:=strOutputFileName, FileFormat:=xlTextMSDOS 



    n = n + 1 

      ReDim Preserve MyArray(n) 
      MyArray(n) = strOutputFileName 
      Debug.Print strOutputFileName 
     End If 
    Next 

    xlBook.Close SaveChanges:=False 

    Kill strPath & "\Temp.xls" 

    For i = 1 To UBound(MyArray) 
     '~~> open the files in One go and store them in an array 
     Open MyArray(i) For Binary As #1 
     MyData = Space$(LOF(1)) 
     Get #1, , MyData 
     Close #1 
     strData() = Split(MyData, vbCrLf) 

     '~~> Write to the text file 
     Open MyArray(i) For Output As #1 

     '~~> Loop through the array and check if the start and end has " 
     '~~> And if it does then ignore those and write to the text file 
     For j = LBound(strData) To UBound(strData) 
      If Left(strData(j), 1) = """" And Right(strData(j), 1) = """" Then 
       strData(j) = Mid(strData(j), 2, Len(strData(j)) - 2) 
      End If 
      Print #1, strData(j) 
     Next j 
     Close #1 
    Next i 
End Sub 
+0

@kelly你做了什麼樣的改變..請讓我知道,這樣我就可以獲得知識 – user2075017 2013-03-01 14:41:45

+0

你忘了引用代碼的第一行和最後一行 – kelly 2013-03-01 14:43:40

+0

@kelly ok ..你可以建議我如何擺脫錯誤我得到了嗎? – user2075017 2013-03-01 14:46:46

回答

0
沒有在你的代碼看太多

最簡單的辦法 - 添加這一行輸出strData(j)到文本文件之前:

strData(j) = Replace(strData(j), """""", """") 

我敢肯定有更好的方法,但這是一個非常簡單,快速和骯髒的修復!

+0

非常感謝@John Bustos ..它的工作。 :) – user2075017 2013-03-01 16:10:12