2013-02-18 6 views
1

Существует код написанный под кнопкой мыши, чтобы сохранить содержимое рабочей книги в текстовый файлфайла сохранения в Excel

Код:

Private Sub CommandButton1_Click() 
    Dim xlApp As Object 
    Dim xlBook As Object 
    Dim xlSheet As Object 
    Dim strOutputFileName 

    Set xlApp = CreateObject("Excel.Application") 
    Set xlBook = xlApp.Workbooks.Open("C:\Documents and Settings\bera02a\Desktop\Arun_TAT_Testing_orig_14022013.xls") 

    For Each xlSheet In xlBook.Worksheets 
     strOutputFileName = "C:\Documents and Settings\bera02a\Desktop\" & xlSheet.Name & ".txt" 
     xlSheet.SaveAs Filename:=strOutputFileName, FileFormat:=xlUnicodeText 
    Next 
    xlApp.Quit 
End Sub 

Оригинальная линия в книге:

create table abc as select rpt2_id, rpt2_usgcount, rpt2_usgdate, rpt2_usgmins from rpt2 where rpt2_id = 'xyz;

Outp ем приходят в:

"create table abc as select rpt2_id, rpt2_usgcount, rpt2_usgdate, rpt2_usgmins from rpt2 where rpt2_id = 'xyz;"

выход Thee приходит в двойных кавычках в начале и в конце концов и он подходит только для вставки и создавать операторы, присутствующие в книге.

Может ли кто-нибудь помочь мне в том, чтобы не получать эти котировки на выходе.?

+0

Питер helpmed меня в прошлый раз в gettnig решения, связанное с excel.if он может помочь мне в этом тоже – user2075017

+1

Пожалуйста, следуйте рекомендациям @SiddharthRout и посмотрите здесь: http://msdn.microsoft.com/en-us/library/office/bb241279%28v=office.12%29.aspx Удачи! –

ответ

1

Хотя вы просили о помощи Петра специально, но видите ли это то, что вы хотите?

xlSheet.SaveAs Filename:=strOutputFileName, FileFormat:=xlTextPrinter 

Followup (Из комментариев)

Попробуйте

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 
+1

@ user2075017 знать об ограничениях: http://www.excelforum.com/excel-programming-vba-macros/533885-fileformat-xltextprinter-saves-only-240-characters-of-cell.html –

+0

@ user2075017: Это потому что он превышает 256 символов. См. Ограничение в приведенной выше ссылке. Я могу дать вам альтернативный код, который может удалить '' 'от начала и до конца, если вы предпочитаете? –

+0

@ user2075017, если вы перейдете по ссылке, вы найдете предлагаемое решение, чтобы обойти это ограничение. Более того, это другой вопрос. –

Смежные вопросы