0

按钮单击中有一个代码,其中工作簿保存到本地文本文件中。

工作簿包含以下信息:

危急; 插入 ifparam 值(3498,'TAT_UNALLOCTRADESREC','STRING','IF(STRING(C5)=STRING("TCE - 外部对冲"),STRING("E"),IF(STRING(C5)=STRING(" TCE - 内部对冲"),STRING("I"),STRING(C5)))');

但是输出很关键;

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
4

1 回答 1

0

无需过多查看代码的最简单解决方案 - 在输出strData(j)到文本文件之前添加此行:

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

我确信有更好的方法,但这是一个非常简单、快速和肮脏的修复方法!

于 2013-03-01T15:25:44.727 回答