Добрый вечер!:)
Задача этого макроса открыть файл типа .csv, преобразовать его в xlsm, потом скопировать диапазона:
"A1:D" - где в D последная занятая ячеяка увеличивает свой номер, т.е. столбец D - типа "динамический", если можно так выразиться.
Прочитав не мало страниц форума понравилось для этой цели:
Range("A1:D" & Cells(Rows.Count, 4).End(xlDown)).Copy
но, на этой строчке макрос затыкается и выдает ошибку:
Run-time error '1004':
Method 'Range' of object '.Global' failed.
Подскажите, как мне выти из этого положения?
Вот и сам макрос:
Sub CSVXLSCOPY()
Workbooks.OpenText Filename:= _
"путь к файлу.csv", _
Origin:=866, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=True, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True
Columns("C:C").ColumnWidth = 15.38
Columns("D:D").NumberFormat = "0.0000"
Columns("D:D").Select
ActiveCell.FormulaR1C1 = "=ROUNDDOWN(C,4)"
ActiveWorkbook.SaveAs Filename:= _
"путь к файлу.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveCell.End(xlDown).Select
Range("A1:D" & Cells(Rows.Count, 4).End(xlDown)).Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Имя листа").Select
Range("P1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Range("P1").Select
End Sub
Задача этого макроса открыть файл типа .csv, преобразовать его в xlsm, потом скопировать диапазона:
"A1:D" - где в D последная занятая ячеяка увеличивает свой номер, т.е. столбец D - типа "динамический", если можно так выразиться.
Прочитав не мало страниц форума понравилось для этой цели:
Range("A1:D" & Cells(Rows.Count, 4).End(xlDown)).Copy
но, на этой строчке макрос затыкается и выдает ошибку:
Run-time error '1004':
Method 'Range' of object '.Global' failed.
Подскажите, как мне выти из этого положения?
Вот и сам макрос:
Sub CSVXLSCOPY()
Workbooks.OpenText Filename:= _
"путь к файлу.csv", _
Origin:=866, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=True, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True
Columns("C:C").ColumnWidth = 15.38
Columns("D:D").NumberFormat = "0.0000"
Columns("D:D").Select
ActiveCell.FormulaR1C1 = "=ROUNDDOWN(C,4)"
ActiveWorkbook.SaveAs Filename:= _
"путь к файлу.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveCell.End(xlDown).Select
Range("A1:D" & Cells(Rows.Count, 4).End(xlDown)).Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Имя листа").Select
Range("P1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Range("P1").Select
End Sub