Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование содержимого огромного файла без форматирования - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование содержимого огромного файла без форматирования (Макросы/Sub)
Копирование содержимого огромного файла без форматирования
Мурад Дата: Четверг, 25.02.2016, 14:17 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Добрый день еще раз! Имеется файл Excel размером 10,5 метров. Внутри длиннющая таблица с границами, переносами слов, разными шрифтами и т.д. Любые операции с таблицей, включая элементарное выделение Ctrl+Shift+вниз заканчиваются зависанием программы на очень продолжительный период времени (час и более), хотя ОЗУ 8Гб. Нужно упростить данную таблицу. Приняли решение снять полностью форматирование таблицы, чтобы облегчить вес файла. Как это можно сделать с помощью макроса? Или у вас есть другие предложения, которые в итоге помогут работать с данными внутри этого файла? Спасибо!
 
Ответить
СообщениеДобрый день еще раз! Имеется файл Excel размером 10,5 метров. Внутри длиннющая таблица с границами, переносами слов, разными шрифтами и т.д. Любые операции с таблицей, включая элементарное выделение Ctrl+Shift+вниз заканчиваются зависанием программы на очень продолжительный период времени (час и более), хотя ОЗУ 8Гб. Нужно упростить данную таблицу. Приняли решение снять полностью форматирование таблицы, чтобы облегчить вес файла. Как это можно сделать с помощью макроса? Или у вас есть другие предложения, которые в итоге помогут работать с данными внутри этого файла? Спасибо!

Автор - Мурад
Дата добавления - 25.02.2016 в 14:17
китин Дата: Четверг, 25.02.2016, 14:36 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Мурад, а вы почитайте тут для начала мне этот топик очень помог.


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеМурад, а вы почитайте тут для начала мне этот топик очень помог.

Автор - китин
Дата добавления - 25.02.2016 в 14:36
_Boroda_ Дата: Четверг, 25.02.2016, 14:42 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Попробуйте открыть файл архиватором (у файла должен быть новый формат - xlsx, xlsm, xlsb) и удалить папку xl\styles.xml.
При последующем открытии будет ругаться - не обращайте внимания.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте открыть файл архиватором (у файла должен быть новый формат - xlsx, xlsm, xlsb) и удалить папку xl\styles.xml.
При последующем открытии будет ругаться - не обращайте внимания.

Автор - _Boroda_
Дата добавления - 25.02.2016 в 14:42
Мурад Дата: Пятница, 26.02.2016, 09:57 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
китин, вчера смотрел этот топик перед написанием своего. Там макрос выполняет действия копирования - вставки, что опять загружает процессор на безумное количество времени.
_Boroda_, к сожалению, файл выгружается встроенными средствами специализированной программы в формате *.xls
:( Нажал сохранить как *.xlsx, пошел процесс, идет уже 5 минут..
 
Ответить
Сообщениекитин, вчера смотрел этот топик перед написанием своего. Там макрос выполняет действия копирования - вставки, что опять загружает процессор на безумное количество времени.
_Boroda_, к сожалению, файл выгружается встроенными средствами специализированной программы в формате *.xls
:( Нажал сохранить как *.xlsx, пошел процесс, идет уже 5 минут..

Автор - Мурад
Дата добавления - 26.02.2016 в 09:57
RAN Дата: Пятница, 26.02.2016, 10:01 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Если файл "был выгружен" в формате xls - ждите ответа.
Если файл "выгружается" в формате xls со всем форматированием, то смысл вашей затеи = 0.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЕсли файл "был выгружен" в формате xls - ждите ответа.
Если файл "выгружается" в формате xls со всем форматированием, то смысл вашей затеи = 0.

Автор - RAN
Дата добавления - 26.02.2016 в 10:01
_Boroda_ Дата: Пятница, 26.02.2016, 10:16 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Мурад, это выгрузка из 1С? Если да (хотя, не так уж и важно, откуда она), то там больше всего тормозят, как это не удивительно, границы ячеек (я про раскраску сетки, которая в Формат ячеек - граница). В 99% случаев после операции {Встать в А1 - Нажать Контрл + Шифт + Енд - Нажать Контрл + 1 - Границы - Нет - ОК (или на вкладке Главная есть стрелка для выбора границ)} тормоза уходят. Другое дело, что часто бывает, что сам процесс снятия границ может быть довольно-таки длительным.
И еще - у большинства программ есть возможность выгружать файлы в новом формате Excel, но для этого информатикам нужно немного поработать. А им лень и они говорят, что это невозможно. В 1С я с этим сталкивался довольно часто. Да и в других программах тоже.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМурад, это выгрузка из 1С? Если да (хотя, не так уж и важно, откуда она), то там больше всего тормозят, как это не удивительно, границы ячеек (я про раскраску сетки, которая в Формат ячеек - граница). В 99% случаев после операции {Встать в А1 - Нажать Контрл + Шифт + Енд - Нажать Контрл + 1 - Границы - Нет - ОК (или на вкладке Главная есть стрелка для выбора границ)} тормоза уходят. Другое дело, что часто бывает, что сам процесс снятия границ может быть довольно-таки длительным.
И еще - у большинства программ есть возможность выгружать файлы в новом формате Excel, но для этого информатикам нужно немного поработать. А им лень и они говорят, что это невозможно. В 1С я с этим сталкивался довольно часто. Да и в других программах тоже.

Автор - _Boroda_
Дата добавления - 26.02.2016 в 10:16
Мурад Дата: Пятница, 26.02.2016, 10:40 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, программа называется Электронный Бюджет, облачная хрень. Не пойму, почему многие разработчики продолжают встраивать в свои БД устаревшие шаблоны Экселя. Неужели он проще?!
 
Ответить
Сообщение_Boroda_, программа называется Электронный Бюджет, облачная хрень. Не пойму, почему многие разработчики продолжают встраивать в свои БД устаревшие шаблоны Экселя. Неужели он проще?!

Автор - Мурад
Дата добавления - 26.02.2016 в 10:40
Мурад Дата: Пятница, 26.02.2016, 10:41 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
после операции {Встать в А1 - Нажать Контрл + Шифт + Енд

мы придем к этому
Любые операции с таблицей, включая элементарное выделение Ctrl+Shift+вниз заканчиваются зависанием программы на очень продолжительный период времени (час и более), хотя ОЗУ 8Гб


Сообщение отредактировал Мурад - Пятница, 26.02.2016, 10:42
 
Ответить
Сообщение
после операции {Встать в А1 - Нажать Контрл + Шифт + Енд

мы придем к этому
Любые операции с таблицей, включая элементарное выделение Ctrl+Shift+вниз заканчиваются зависанием программы на очень продолжительный период времени (час и более), хотя ОЗУ 8Гб

Автор - Мурад
Дата добавления - 26.02.2016 в 10:41
_Boroda_ Дата: Пятница, 26.02.2016, 10:51 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
мы придем к этому

Это-то понятно. Я про то и писал
Другое дело, что часто бывает, что сам процесс снятия границ может быть довольно-таки длительным.
Кстати, автопересчет формул отключен? Иногда помогает. Правда, не очень надолго.

А просто открыть файл, пересохранить его в xlsx, закрыть и далее по методу из поста №3?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
мы придем к этому

Это-то понятно. Я про то и писал
Другое дело, что часто бывает, что сам процесс снятия границ может быть довольно-таки длительным.
Кстати, автопересчет формул отключен? Иногда помогает. Правда, не очень надолго.

А просто открыть файл, пересохранить его в xlsx, закрыть и далее по методу из поста №3?

Автор - _Boroda_
Дата добавления - 26.02.2016 в 10:51
Мурад Дата: Пятница, 26.02.2016, 11:23 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Александр, сохранить как Эксель 2007 я уже пытался. Подождал 10 минут и завершил процесс. Вот пробую теперь просто выделить Ctrl+Shift+End, жду уже 40 минут..
 
Ответить
СообщениеАлександр, сохранить как Эксель 2007 я уже пытался. Подождал 10 минут и завершил процесс. Вот пробую теперь просто выделить Ctrl+Shift+End, жду уже 40 минут..

Автор - Мурад
Дата добавления - 26.02.2016 в 11:23
Мурад Дата: Пятница, 26.02.2016, 11:35 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Если копировать и вставлять кусочками по 5-10 строк, то все нормально. Но стоит попытаться прокрутить бегунок вниз хотя бы на 1см, система зависает. Может макрос какой-нибудь поможет? Копировать A1:U1, Вставить в другой файл A1:U1 без форматирования, потом A2:U2, и т.д. Именно кусочками.
Или макросом не копипастить, а кусочками снимать форматирование с таблицы на этом же листе


Сообщение отредактировал Мурад - Пятница, 26.02.2016, 11:40
 
Ответить
СообщениеЕсли копировать и вставлять кусочками по 5-10 строк, то все нормально. Но стоит попытаться прокрутить бегунок вниз хотя бы на 1см, система зависает. Может макрос какой-нибудь поможет? Копировать A1:U1, Вставить в другой файл A1:U1 без форматирования, потом A2:U2, и т.д. Именно кусочками.
Или макросом не копипастить, а кусочками снимать форматирование с таблицы на этом же листе

Автор - Мурад
Дата добавления - 26.02.2016 в 11:35
SLAVICK Дата: Пятница, 26.02.2016, 11:42 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
длиннющая таблица с границами, переносами слов, разными шрифтами и т.д.

китин, Вам правильно написал - нужно двигатся в том направлении.
Как показывает моя практика - лучше всего сделать макрос для очистки- копирования. Причем желательно запускать из другой книги.
Алгоритм такой:
Отключаем все события - я пользуюсь таким макросом
[vba]
Код
Sub speedOn()
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
        Application.DisplayStatusBar = False
        Application.DisplayAlerts = False
End Sub
[/vba]
Открываем книгу
Удаляем форматы черезCells.ClearFormats - так на порядок быстрее чем отдельно снимать границы, убирать переносы, применять другой шрифт....
Копируем
Вставляем через PasteSpecial Paste:=xlPasteValues - так быстрее чем обычный paste (или пересохраняем файл в новом формате.)
Включаем все события обратно:
[vba]
Код
Sub speedOff()
    Application.StatusBar = False
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.CalculateBeforeSave = True
    Application.EnableEvents = True
    Application.DisplayStatusBar = True
    Application.DisplayAlerts = True
    DoEvents
End Sub
[/vba]

ЗЫ в макросе нужно исключать любые выделения ячеек.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
длиннющая таблица с границами, переносами слов, разными шрифтами и т.д.

китин, Вам правильно написал - нужно двигатся в том направлении.
Как показывает моя практика - лучше всего сделать макрос для очистки- копирования. Причем желательно запускать из другой книги.
Алгоритм такой:
Отключаем все события - я пользуюсь таким макросом
[vba]
Код
Sub speedOn()
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
        Application.DisplayStatusBar = False
        Application.DisplayAlerts = False
End Sub
[/vba]
Открываем книгу
Удаляем форматы черезCells.ClearFormats - так на порядок быстрее чем отдельно снимать границы, убирать переносы, применять другой шрифт....
Копируем
Вставляем через PasteSpecial Paste:=xlPasteValues - так быстрее чем обычный paste (или пересохраняем файл в новом формате.)
Включаем все события обратно:
[vba]
Код
Sub speedOff()
    Application.StatusBar = False
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.CalculateBeforeSave = True
    Application.EnableEvents = True
    Application.DisplayStatusBar = True
    Application.DisplayAlerts = True
    DoEvents
End Sub
[/vba]

ЗЫ в макросе нужно исключать любые выделения ячеек.

Автор - SLAVICK
Дата добавления - 26.02.2016 в 11:42
_Boroda_ Дата: Пятница, 26.02.2016, 11:51 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Попробуйте для начала сразу.
В другой книге на пустом листе запустите вот так (названия, понятное дело, свои)
[vba]
Код
Sub Макрос1()
    With Workbooks("База_2016_01_21__8.xlsm").Sheets("База")
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row'*
        c1_ = .Cells(1, Columns.Count).End(xlToLeft).Column'**
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
End Sub
[/vba]
* - номер последней заполненной ячейки столбца А должен быть равер номеру последней заполненной ячейки всей таблицы
** - аналогично для строки 1

И да, как Славик выше написал, неплохо бы отключить сначала .ScreenUpdating и .Calculation


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте для начала сразу.
В другой книге на пустом листе запустите вот так (названия, понятное дело, свои)
[vba]
Код
Sub Макрос1()
    With Workbooks("База_2016_01_21__8.xlsm").Sheets("База")
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row'*
        c1_ = .Cells(1, Columns.Count).End(xlToLeft).Column'**
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
End Sub
[/vba]
* - номер последней заполненной ячейки столбца А должен быть равер номеру последней заполненной ячейки всей таблицы
** - аналогично для строки 1

И да, как Славик выше написал, неплохо бы отключить сначала .ScreenUpdating и .Calculation

Автор - _Boroda_
Дата добавления - 26.02.2016 в 11:51
SLAVICK Дата: Пятница, 26.02.2016, 12:19 | Сообщение № 14
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Ну тогда и мой вариант - немного длинее, чем _Boroda_ написал, но как по мне, удобнее и должен быть по шустрее
Если не нужна очистка и сохранение файла в новом формате - можете удалить строки с комментариями.
ждем Ваших тестов :D :
[vba]
Код
Sub d()
Dim wb As Workbook, sh As Worksheet
speedOn
    Set sh = ActiveSheet
    fn = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "Выбор файла")
    Set wb = Workbooks.Open(fn)
    With wb
        With .Sheets(1)
            .Cells.ClearFormats ' очистка форматов
            .UsedRange.Copy
        End With
        sh.Cells(1, 1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        fn = Left(fn, InStrRev(fn, ".")) & "xlsx"
        .SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook 'Сохранение книги в "xlsx"
        .Close
    End With
speedOff
End Sub
[/vba]
Зы speedOn и speedOff в прошлом посте писал, поэтому не дублирую.(В файле все есть)
К сообщению приложен файл: getText_1.xlsm (18.8 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеНу тогда и мой вариант - немного длинее, чем _Boroda_ написал, но как по мне, удобнее и должен быть по шустрее
Если не нужна очистка и сохранение файла в новом формате - можете удалить строки с комментариями.
ждем Ваших тестов :D :
[vba]
Код
Sub d()
Dim wb As Workbook, sh As Worksheet
speedOn
    Set sh = ActiveSheet
    fn = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "Выбор файла")
    Set wb = Workbooks.Open(fn)
    With wb
        With .Sheets(1)
            .Cells.ClearFormats ' очистка форматов
            .UsedRange.Copy
        End With
        sh.Cells(1, 1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        fn = Left(fn, InStrRev(fn, ".")) & "xlsx"
        .SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook 'Сохранение книги в "xlsx"
        .Close
    End With
speedOff
End Sub
[/vba]
Зы speedOn и speedOff в прошлом посте писал, поэтому не дублирую.(В файле все есть)

Автор - SLAVICK
Дата добавления - 26.02.2016 в 12:19
Мурад Дата: Пятница, 26.02.2016, 12:25 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, получается вот такой код:
[vba]
Код
Sub Макрос1()
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
        Application.DisplayStatusBar = False
        Application.DisplayAlerts = False
    
    With Workbooks("project_25.02.xls").Sheets(1)
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row '*
        c1_ = .Cells(1, Columns.Count).End(xlToLeft).Column '**
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
End Sub
[/vba]

Покрутил секунды 3 и завершилось. Но результата нет. Я посмотрел синтаксис кода [vba]
Код
.Range("A" & Rows.Count).End(xlUp).Row
[/vba] в гугле, но там число строк нигде не вставляется..
 
Ответить
Сообщение_Boroda_, получается вот такой код:
[vba]
Код
Sub Макрос1()
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
        Application.DisplayStatusBar = False
        Application.DisplayAlerts = False
    
    With Workbooks("project_25.02.xls").Sheets(1)
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row '*
        c1_ = .Cells(1, Columns.Count).End(xlToLeft).Column '**
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
End Sub
[/vba]

Покрутил секунды 3 и завершилось. Но результата нет. Я посмотрел синтаксис кода [vba]
Код
.Range("A" & Rows.Count).End(xlUp).Row
[/vba] в гугле, но там число строк нигде не вставляется..

Автор - Мурад
Дата добавления - 26.02.2016 в 12:25
_Boroda_ Дата: Пятница, 26.02.2016, 12:33 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
1. Про последние 3 Апликейшна я вроде ничего не писал?
2. Если уж Вы так запустили, то запускайте теперь макрос Славика speedOn, чтобы все взад вернуть.
3. У Вас в каком столбце исходного файла всё заполнено до конца таблицы? Вот его и ставьте на место Range("А...
4. Со строкой аналогично - я предположил, что шапка таблицы в первой строке, а Вы вставьте здесь Cells(1,... нужный номер

PS. Юзедренж и иже с ним сознательно не использовал.
[vba]
Код
Sub Макрос1()
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculaltionManua
    
    With Workbooks("project_25.02.xls").Sheets(1)
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row
        c1_ = .Cells(1, Columns.Count).End(xlToLeft).Column
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
        Application.Calculation = xlCalculationAutomatic
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение1. Про последние 3 Апликейшна я вроде ничего не писал?
2. Если уж Вы так запустили, то запускайте теперь макрос Славика speedOn, чтобы все взад вернуть.
3. У Вас в каком столбце исходного файла всё заполнено до конца таблицы? Вот его и ставьте на место Range("А...
4. Со строкой аналогично - я предположил, что шапка таблицы в первой строке, а Вы вставьте здесь Cells(1,... нужный номер

PS. Юзедренж и иже с ним сознательно не использовал.
[vba]
Код
Sub Макрос1()
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculaltionManua
    
    With Workbooks("project_25.02.xls").Sheets(1)
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row
        c1_ = .Cells(1, Columns.Count).End(xlToLeft).Column
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
        Application.Calculation = xlCalculationAutomatic
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 26.02.2016 в 12:33
Мурад Дата: Пятница, 26.02.2016, 13:09 | Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Посчитал число строк с помощью СЧЁТЗ(). В итоге записал код след обр:
[vba]
Код
Sub Макрос1()
    With Workbooks("project_25.02.xls").Sheets(1)
        r1_ = .Range("A" & 26773).End(xlUp).Row
        c1_ = .Cells(1, 21).End(xlToLeft).Column
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
        Application.Calculation = xlCalculationAutomatic
End Sub
[/vba]

Макрос скопировал и вставил из тяжелого файла 10 первых строк и все.
 
Ответить
СообщениеПосчитал число строк с помощью СЧЁТЗ(). В итоге записал код след обр:
[vba]
Код
Sub Макрос1()
    With Workbooks("project_25.02.xls").Sheets(1)
        r1_ = .Range("A" & 26773).End(xlUp).Row
        c1_ = .Cells(1, 21).End(xlToLeft).Column
        Range("A1").Resize(r1_, c1_) = .Range("A1").Resize(r1_, c1_).Value
    End With
        Application.Calculation = xlCalculationAutomatic
End Sub
[/vba]

Макрос скопировал и вставил из тяжелого файла 10 первых строк и все.

Автор - Мурад
Дата добавления - 26.02.2016 в 13:09
SLAVICK Дата: Пятница, 26.02.2016, 13:12 | Сообщение № 18
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Мурад, Вы мой пример в 14-м посте смотрели?


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеМурад, Вы мой пример в 14-м посте смотрели?

Автор - SLAVICK
Дата добавления - 26.02.2016 в 13:12
Мурад Дата: Пятница, 26.02.2016, 13:20 | Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
SLAVICK, запустил Ваш код с 3 модулями. Система предложила выбрать файл, я выбрал тяжелый. Пошел процесс, все крутится. Будем ждать
 
Ответить
СообщениеSLAVICK, запустил Ваш код с 3 модулями. Система предложила выбрать файл, я выбрал тяжелый. Пошел процесс, все крутится. Будем ждать

Автор - Мурад
Дата добавления - 26.02.2016 в 13:20
_Boroda_ Дата: Пятница, 26.02.2016, 13:32 | Сообщение № 20
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
В итоге записал код след обр

Не, тогда нужно вот так
[vba]
Код
Sub Макрос1()
   Application.ScreenUpdating = False
   Application.Calculation = xlCalculationManual
   With Workbooks("project_25.02.xls").Sheets(1)
      Range("A1").Resize(26773, 21) = .Range("A1").Resize(26773, 21).Value
   End With
   Application.Calculation = xlCalculationAutomatic
End Sub
[/vba]
Добавлено
Дописал последнюю букву в xlCalculationManual


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995


Сообщение отредактировал _Boroda_ - Пятница, 26.02.2016, 13:45
 
Ответить
Сообщение
В итоге записал код след обр

Не, тогда нужно вот так
[vba]
Код
Sub Макрос1()
   Application.ScreenUpdating = False
   Application.Calculation = xlCalculationManual
   With Workbooks("project_25.02.xls").Sheets(1)
      Range("A1").Resize(26773, 21) = .Range("A1").Resize(26773, 21).Value
   End With
   Application.Calculation = xlCalculationAutomatic
End Sub
[/vba]
Добавлено
Дописал последнюю букву в xlCalculationManual

Автор - _Boroda_
Дата добавления - 26.02.2016 в 13:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование содержимого огромного файла без форматирования (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!