[/vba] А вообще... было бы хорошо, чтоб копировались данные столбцы до последней заполненной строки. Вот полный код:
[vba]
Код
Sub Get_Value_From_Book() Dim sFile As String, Sh As Worksheet, ac As Long
With Application.FileDialog(msoFileDialogFilePicker) .Filters.Clear .Filters.Add "Microsoft Excel files", "*.xls" .AllowMultiSelect = False .InitialFileName = ThisWorkbook.Path If .Show = 0 Then Exit Sub sFile = .SelectedItems(1) End With
Set Sh = ActiveWorkbook.ActiveSheet
With Application 'отключаем обновление экрана - это убыстрит работу макроса .ScreenUpdating = False 'отключаем события книги .EnableEvents = False 'включаем ручной пересчёт формул - это убыстрит работу макроса ac = .Calculation: .Calculation = xlCalculationManual
With GetObject(sFile).Sheets(1) .Range("B7:B11999,D7:D11999,H7:H11999,J7:J11999,K7:K11999,P7:P11999").Copy Sh.[A3] .Parent.Close False End With 'возвращаем назад всё отключенное/изменённое .ScreenUpdating = True .EnableEvents = True .Calculation = ac End With ActiveWindow.ScrollRow = 1 MsgBox "Готово! Можете продолжать работу с обновлёнными остатками!", vbInformation
End Sub
[/vba]
Добрый день, Господа! Подскажите пожалуйста, как можно по проще записать данную строку в коде? [vba]
[/vba] А вообще... было бы хорошо, чтоб копировались данные столбцы до последней заполненной строки. Вот полный код:
[vba]
Код
Sub Get_Value_From_Book() Dim sFile As String, Sh As Worksheet, ac As Long
With Application.FileDialog(msoFileDialogFilePicker) .Filters.Clear .Filters.Add "Microsoft Excel files", "*.xls" .AllowMultiSelect = False .InitialFileName = ThisWorkbook.Path If .Show = 0 Then Exit Sub sFile = .SelectedItems(1) End With
Set Sh = ActiveWorkbook.ActiveSheet
With Application 'отключаем обновление экрана - это убыстрит работу макроса .ScreenUpdating = False 'отключаем события книги .EnableEvents = False 'включаем ручной пересчёт формул - это убыстрит работу макроса ac = .Calculation: .Calculation = xlCalculationManual
With GetObject(sFile).Sheets(1) .Range("B7:B11999,D7:D11999,H7:H11999,J7:J11999,K7:K11999,P7:P11999").Copy Sh.[A3] .Parent.Close False End With 'возвращаем назад всё отключенное/изменённое .ScreenUpdating = True .EnableEvents = True .Calculation = ac End With ActiveWindow.ScrollRow = 1 MsgBox "Готово! Можете продолжать работу с обновлёнными остатками!", vbInformation