Страницы: 1
RSS
VBA как задать диапазон для копирования
 
добрый день. помогите в непростом деле. хочу скопировать диапазон значений в текстовый файл. макрос  работает только с одной ячейкой. если в коде упоминается Range, то выдает ошибку. как мне прописать диапазон?
Код
Sub abc()
     fo% = FreeFile
     Open "C:\abc.txt" For Output As #fo%
    'i = Range("B2", Cells(Rows.Count, 2).End(xlUp)).Value
  ' Print #fo%, Workbooks("Книга1.xlsm").Range(Worksheets("Лист1").Cells(2, 2), Worksheets("Лист1").Cells(6, 2)).Value
   'Print #fo%,  Range(Sheets("Лист1").Cells(2, 2), Sheets("Лист1").Cells(6, 2)).Value
  ' Print #fo%, Range("B2:B6").Value
   'Print #fo%, Range("B2", Cells(Rows.Count, 2).End(xlUp)).Value
   'Print #fo%, i
    Print #fo%, Cells(2, 2).Value
    Close #fo%

End Sub
 
или по одной ячейке в файл
или по одной - строку, а потом строку в файл
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
artyrH,
Код
Sub abc()
     fo% = FreeFile
     'Open "C:\abc.txt" For Output As #fo%
     Open ThisWorkbook.Path & "\abc.txt" For Output As #fo%
     
     Set curRn = Selection
     
     columnsSeparator = ";"
     rowsSeparator = vbNewLine
     
     For Each rrow In curRn.Rows
        For Each ccell In rrow.Cells
            ccell.Select
            curText = curText & ccell.Value & columnsSeparator
        Next ccell
        curText = curText & rowsSeparator
     Next rrow

    Print #fo%, curText
    Close #fo%
 
End Sub
In GoTo we trust
 
tolstak, не сработало. в файле тхт появилось ;  
 
полчаса мучил. в итоге получил это. спасибо всем
Код
Sub abc()
    
     fo% = FreeFile
     Open "C:\abc.txt" For Output As #fo%
    ' Open ThisWorkbook.Path & "\abc.txt" For Output As #fo%
     Worksheets("Ëèñò1").Range("B2", Cells(Rows.Count, 2).End(xlUp)).Select
     Set curRn = Selection
   ' Set curRn = Worksheets("Ëèñò1").Range("B2", Cells(Rows.Count, 2).End(xlUp)).Value
    ' columnsSeparator = ""
     rowsSeparator = vbNewLine
      
     For Each rrow In curRn.Rows
        For Each ccell In rrow.Cells
            ccell.Select
            curText = curText & ccell.Value & columnsSeparator
        Next ccell
        curText = curText & rowsSeparator
     Next rrow
 
    Print #fo%, curText
    Close #fo%
  
End Sub
Изменено: artyrH - 03.07.2019 17:01:17
 
tolstak, спасибо большое за макрос. очень нужный
Изменено: artyrH - 03.07.2019 17:45:22
Страницы: 1
Наверх