Добрый день. В очередной раз прошу помощи. Задача такова, есть файл в который нужно импортировать прайс. В файле источнике на каждом листе прайс для определенного города. Необходимо чтобы макрос распознавал название листа которое есть в ячейке К1 и копировал с него данные. Образец файла приложить не могу из-за большого веса. [vba]
Код
Sub ÎáíîâëåíèåÏðàéñà() Dim MyPath As String Dim wb1 As String Dim wb2 As String Application.ScreenUpdating = False Application.CutCopyMode = False wb1 = "Ïðàéñ.xls" wb2 = "Êîììåð÷åñêîå ïðåäëîæåíèå.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Columns("A:I").ClearContents Workbooks.Open Filename:=MyPath Sheets = K1 Columns("A:J").Copy Workbooks(wb2).Activate Columns("A:J").PasteSpecial xlPasteAll Workbooks(wb1).Activate Application.CutCopyMode = True Application.ScreenUpdating = True ActiveWindow.Close End Sub
[/vba] [moder]Евгений, когда копируете код, включайте русскую раскладку, чтобы не было кракозябр[/moder]
Добрый день. В очередной раз прошу помощи. Задача такова, есть файл в который нужно импортировать прайс. В файле источнике на каждом листе прайс для определенного города. Необходимо чтобы макрос распознавал название листа которое есть в ячейке К1 и копировал с него данные. Образец файла приложить не могу из-за большого веса. [vba]
Код
Sub ÎáíîâëåíèåÏðàéñà() Dim MyPath As String Dim wb1 As String Dim wb2 As String Application.ScreenUpdating = False Application.CutCopyMode = False wb1 = "Ïðàéñ.xls" wb2 = "Êîììåð÷åñêîå ïðåäëîæåíèå.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Columns("A:I").ClearContents Workbooks.Open Filename:=MyPath Sheets = K1 Columns("A:J").Copy Workbooks(wb2).Activate Columns("A:J").PasteSpecial xlPasteAll Workbooks(wb1).Activate Application.CutCopyMode = True Application.ScreenUpdating = True ActiveWindow.Close End Sub
[/vba] [moder]Евгений, когда копируете код, включайте русскую раскладку, чтобы не было кракозябр[/moder]KolyvanOFF
Sub import() Dim MyPath As String Dim wb1 As String Dim wb2 As String Application.ScreenUpdating = False Application.CutCopyMode = False wb1 = "прайс.xls" wb2 = "еще_что-то.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Columns("A:I").ClearContents
shName = ActiveSheet.Cells(1, 11).Value 'в данном случае значение К1 берется с активного листа в wb2 Workbooks.Open Filename:=MyPath ActiveWorkbook.Sheets(shName).Select 'выбираем лист в wb1 с именем shName
Columns("A:J").Copy Workbooks(wb2).Activate Columns("A:J").PasteSpecial xlPasteAll Workbooks(wb1).Activate Application.CutCopyMode = True Application.ScreenUpdating = True ActiveWindow.Close End Sub
[/vba]
KolyvanOFF, попробуйте так: [vba]
Код
Sub import() Dim MyPath As String Dim wb1 As String Dim wb2 As String Application.ScreenUpdating = False Application.CutCopyMode = False wb1 = "прайс.xls" wb2 = "еще_что-то.xlsm" MyPath = ThisWorkbook.Path & "\" & wb1 Columns("A:I").ClearContents
shName = ActiveSheet.Cells(1, 11).Value 'в данном случае значение К1 берется с активного листа в wb2 Workbooks.Open Filename:=MyPath ActiveWorkbook.Sheets(shName).Select 'выбираем лист в wb1 с именем shName
Columns("A:J").Copy Workbooks(wb2).Activate Columns("A:J").PasteSpecial xlPasteAll Workbooks(wb1).Activate Application.CutCopyMode = True Application.ScreenUpdating = True ActiveWindow.Close End Sub