Скопируйте большой живой лист из закрытой книги в рабочую книгу, остановите вычисления, Excel VBA, Mac OSX

Новый пользователь VBA здесь, спасибо за ваше терпение. Я хочу скопировать и вставить в качестве значений диапазон от одного закрытого листа к активному листу. В частности, я хочу использовать VBA в активной книге для копирования диапазона A1: HW6000 со вкладки «AllData» в TOOL.XLSM, в то время как TOOL.XLSM закрывается и вставляется в активную книгу в диапазоне A1: HW6000 в активном листе в качестве значений ,

У меня есть код, который будет делать это (забота о Peh в stackoverflow, спасибо Peh!), Но код работает вечно (более 45 минут), потому что запуск кода, похоже, пересчитывает как новую рабочую книгу, так и книгу импорта в том же времени, а книга импорта (TEST.xslm) очень велика. Я бегу на Mac. Вот код, который у меня есть:

Sub ImportData() Dim App As New Excel.Application 'create a new (hidden) Excel ' remember active sheet Dim wsActive As Worksheet Set wsActive = ThisWorkbook.ActiveSheet ' open the import workbook in new Excel (as read only) Dim wbImport As Workbook Set wbImport = App.Workbooks.Open(Filename:="/Users/cwight/Desktop/TOOL.xlsm", UpdateLinks:=True, ReadOnly:=True) 'copy the data of the import sheet wbImport.Worksheets("AllDATA").Range("A1:HW6000").Copy wsActive.Range("A1").PasteSpecial Paste:=xlPasteFormats 'paste formats wsActive.Range("A1").PasteSpecial Paste:=xlPasteValues 'paste values App.CutCopyMode = False 'clear clipboard (prevents asking when wb is closed) wbImport.Close SaveChanges:=False 'close wb without saving App.Quit 'quit the hidden Excel End Sub 

Могу ли я интегрировать следующие биты кода, чтобы отключить вычисления во время процесса импорта? Если да, то как именно? Я не могу разобраться:

  Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.DisplayStatusBar = False 

Есть ли что-нибудь еще, что я могу сделать? Спасибо вам огромное за ваше время.

здесь это функция, которая использует векторы для копирования данных из одного excel в другой, не забудьте назначить это кнопке и в ячейку указать путь. создайте модуль с именем: «FUNCTIONS» и вставьте его туда:

 Function range_to_variant(variant_arr As Variant, sheet As Worksheet, first_range As String, last_column As String, last_row_column As String) variant_arr = sheet.Range(first_range & ":" & last_column & sheet.Cells(sheet.Rows.Count, last_row_column).End(xlUp).Row).Value End Function Function array_to_range(variant_arr As Variant, sheet As Worksheet, first_range As String) 'example ' Call array_to_range(new_variant, Worksheets("Sheet1"), "1.1") Dim split_arr() As String split_arr = Split(first_range, ".") Dim range1 As String Dim range2 As String Dim range3 As String Dim range4 As String range1 = Replace(sheet.Cells(CInt(split_arr(0)), CInt(split_arr(1))).Address, "$", "") range2 = Replace(sheet.Cells(CInt(split_arr(0)) + UBound(variant_arr, 1) - 1, CInt(split_arr(1)) + UBound(variant_arr, 2) - 1).Address, "$", "") sheet.Range(range1 & ":" & range2).Value = variant_arr sheet.Range(range1 & ":" & range2).Columns.AutoFit End Function 

После того, как вы закончите, создайте 2 sub, в которых написано:

 Sub select_fle2() Call Select_file("b10", "xlsm") End Sub Sub Run() Dim xl As New Excel.Application xl.Workbooks.Open (Worksheets("MAIN").Range("B7").Value) xl.Visible = False Dim raw_data As Variant Call range_to_variant(raw_data, xl.Worksheets("your_sheet_name"), "A1", "HW", "A") xl.Quit Set xl = Nothing ThisWorkbook.Worksheets("sheet_paste").Columns("A:HW").ClearContents Call array_to_range(raw_data, Worksheets("sheet_paste"), "1.1") End sub 
  • Как я могу установить / использовать «Scripting.FileSystemObject» в Excel 2010 для MAC?
  • Скопировать текст веб-страницы в одну ячейку в Excel с помощью VBA?
  • mac excel 2011 vba range дает ошибку
  • Mac Excel 2011 greyed out Module
  • Mac Excel 2011 VBA Evaluate
  • «Объект не поддерживает это действие» для выпадающего меню в Excel 2011 (Mac OS X)
  • Есть ли альтернатива Scripting.FileSystemObject в Excel 2011 VBA для Mac?
  • Mac Excel 2016 «Ошибка времени выполнения» 429: компонент ActiveX не может создать объект "
  • Ошибка CDate при проверке действительной даты
  • Excel VBA - копирование и вставка новых данных / строк
  • Excel 2011 на Mac - Macro - Ограничение длины файла FileCopy
  • Interesting Posts

    вычесть последние две непустые ячейки в excel

    Использование выделения с объектами Excel

    Excel VBA ActiveWindow.Visible скрывает неправильную книгу

    Несколько периодов под единым Заявление

    Макрос для сортировки нескольких таблиц по двум критериям

    Использование позднего связывания для получения конкретного экземпляра Excel в C #

    удалите дублированный ряд и увеличьте весовые столбцы с помощью vba

    Как добавить пользовательский XML в открытую книгу Excel 2007 с помощью C #?

    Как вызвать библиотеки C # из Excel?

    Не удалось войти в wordpress с помощью оболочки selenium, поскольку файлы cookie заблокированы?

    Доступ к столбцу в массиве VBA

    Excel VBA: фильтровать и копировать из 5 верхних строк / ячеек

    Обновление нескольких листов в excel с использованием ссылочного номера и квалификационных критериев

    Ошибка времени выполнения «9»: индекс вне диапазона – только когда Excel VBE закрыт

    Экспорт отчета IE для Excel с использованием VBA, где выпадающее меню экспорта существует

    Давайте будем гением компьютера.