{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Заметки — Игорь К.: заметки с тегом макрос",
    "_rss_description": "Блог Игоря К. о маркетинге, аналитике, фотографии и жизни...",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/blog.fossko.ru\/tags\/makros\/",
    "feed_url": "https:\/\/blog.fossko.ru\/tags\/makros\/json\/",
    "icon": "https:\/\/blog.fossko.ru\/pictures\/userpic\/userpic@2x.jpg?1610628098",
    "authors": [
        {
            "name": "Игорь К.",
            "url": "https:\/\/blog.fossko.ru\/",
            "avatar": "https:\/\/blog.fossko.ru\/pictures\/userpic\/userpic@2x.jpg?1610628098"
        }
    ],
    "items": [
        {
            "id": "541",
            "url": "https:\/\/blog.fossko.ru\/all\/makros-avtomaticheskogo-sohraneniya-csv-iz-ekselya\/",
            "title": "Макрос автоматического сохранения csv из экселя",
            "content_html": "<p>Есть файл состоящий из одного листа ID, нужно автоматически разделить количество строк по 10 и сохранить каждый диапазон в csv файл<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/makros-avtomaticheskogo-sohraneniya-csv-iz-ekselya.png\" width=\"380\" height=\"476\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Cтолбец с ID, которые нужно сохранить в отдельные файлы<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/makros-avtomaticheskogo-sohraneniya-csv-iz-ekselya-1.png\" width=\"1111\" height=\"389\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Делаем через макросы Разработчик — Visual basic.<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/Parametry-Excel-2023-12-05-23.47.32.jpg\" width=\"925\" height=\"683\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Если вкладки «Разработчик» нет, ее нужно включить через настройки: Параметры — Настроить ленту — Разработчик.<\/div>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">Sub SplitAndSave()\n    Dim SourceSheet As Worksheet\n    Dim NewSheet As Worksheet\n    Dim LastRow As Long\n    Dim Group As Long\n    Dim CurrentRow As Long\n    Dim Path As String\n    Dim DateTimeStr As String\n\n    &#039; Укажите имя вашего исходного листа\n    Set SourceSheet = ThisWorkbook.Sheets(&quot;Лист1&quot;)\n\n    &#039; Укажите путь для сохранения файлов\n    Path = &quot;E:\\work\\csv\\&quot;\n\n    &#039; Определите последнюю строку в столбце A\n    LastRow = SourceSheet.Cells(SourceSheet.Rows.Count, &quot;A&quot;).End(xlUp).Row\n\n    &#039; Инциализируем переменные\n    CurrentRow = 2 &#039; Начинаем с 2, так как, вероятно, у вас есть заголовок\n    Group = 1\n\n    Do While CurrentRow &lt;= LastRow\n        &#039; Создаем новый лист для текущей группы\n        Set NewSheet = Sheets.Add(After:=Sheets(Sheets.Count))\n        NewSheet.Name = &quot;Group&quot; &amp; Group\n\n      &#039; Копируем данные текущей группы на новый лист\n        SourceSheet.Rows(CurrentRow &amp; &quot;:&quot; &amp; IIf(CurrentRow + 9 &lt;= LastRow, CurrentRow + 9, LastRow)).Copy Destination:=NewSheet.Rows(1)\n        \n        &#039; Создаем переменную с текущей датой в формате год-месяц-день-часы-минуты\n        DateTimeStr = Format(Now, &quot;yyyy-mm-dd-hh-nn&quot;)\n        \n    &#039; Сохраняем новый лист в виде CSV файла с меткой времени\n        NewSheet.SaveAs Path &amp; DateTimeStr &amp; &quot;_&quot; &amp; &quot;Group&quot; &amp; Group &amp; &quot;.csv&quot;, xlCSV\n\n     &#039; Удаляем новый лист, если необходимо\n        Application.DisplayAlerts = False\n        NewSheet.Delete\n        Application.DisplayAlerts = True\n\n        &#039; Переходим к следующей группе\n        CurrentRow = CurrentRow + 10\n        Group = Group + 1\n    Loop\nEnd Sub<\/code><\/pre><div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.fossko.ru\/pictures\/csv-2023-12-05-23.41.26.jpg\" width=\"746\" height=\"399\" alt=\"\" \/>\n<div class=\"e2-text-caption\">В папку csv загрузились разделенные файлы<\/div>\n<\/div>\n<p>Добавим разбиение с сохранением заголовка из ячейки A1.<br \/>\nРазбивать будем по RowsPerGroup равном 1400 значений<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Sub SplitAndSaveWithHeaderVariable()\n    Dim SourceSheet As Worksheet\n    Dim NewSheet As Worksheet\n    Dim LastRow As Long\n    Dim Group As Long\n    Dim CurrentRow As Long\n    Dim Path As String\n    Dim DateTimeStr As String\n    Dim HeaderVariable As String\n    Dim RowsPerGroup As Long\n\n    &#039; Укажите имя вашего исходного листа\n    Set SourceSheet = ThisWorkbook.Sheets(&quot;Лист1&quot;)\n\n    &#039; Укажите путь для сохранения файлов\n    Path = &quot;E:\\work\\csv\\&quot;\n\n   &#039; Определите последнюю строку в столбце A\n    LastRow = SourceSheet.Cells(SourceSheet.Rows.Count, &quot;A&quot;).End(xlUp).Row\n\n    &#039; Инициализируйте переменные\n    CurrentRow = 2 &#039; Начинаем с 2, предполагая, что у вас есть заголовок\n    Group = 1\n\n    &#039; Установите значение переменной заголовка из ячейки A1\n    HeaderVariable = SourceSheet.Cells(1, 1).Value\n\n    &#039; Установите количество строк в группе\n    RowsPerGroup = 1400\n\n    Do While CurrentRow &lt;= LastRow\n       &#039; Создаем новый лист для текущей группы\n        Set NewSheet = Sheets.Add(After:=Sheets(Sheets.Count))\n        NewSheet.Name = &quot;Group&quot; &amp; Group\n\n       &#039; Вставляем переменную заголовка в первую ячейку нового листа\n        NewSheet.Cells(1, 1).Value = HeaderVariable\n\n        &#039; Копируем данные текущей группы на новый лист\n        SourceSheet.Rows(CurrentRow &amp; &quot;:&quot; &amp; IIf(CurrentRow + RowsPerGroup - 1 &lt;= LastRow, CurrentRow + RowsPerGroup - 1, LastRow)).Copy Destination:=NewSheet.Rows(2)\n\n       &#039; Получаем текущую дату и время в указанном формате\n        DateTimeStr = Format(Now, &quot;yyyy-mm-dd-hh-nn&quot;)\n\n       &#039; Сохраняем новый лист в виде файла CSV с датой и временем в имени файла\n        NewSheet.SaveAs Path &amp; DateTimeStr &amp; &quot;_&quot; &amp; &quot;Group&quot; &amp; Group &amp; &quot;.csv&quot;, xlCSV\n\n        &#039; Удаляем новый лист, если необходимо\n        Application.DisplayAlerts = False\n        NewSheet.Delete\n        Application.DisplayAlerts = True\n\n       &#039; Переходим к следующей группе\n        CurrentRow = CurrentRow + RowsPerGroup\n        Group = Group + 1\n    Loop\nEnd Sub<\/code><\/pre>",
            "date_published": "2023-12-06T21:26:06+03:00",
            "date_modified": "2023-12-06T21:25:56+03:00",
            "tags": [
                "макрос",
                "таблицы",
                "эксель"
            ],
            "image": "https:\/\/blog.fossko.ru\/pictures\/makros-avtomaticheskogo-sohraneniya-csv-iz-ekselya.png",
            "_date_published_rfc2822": "Wed, 06 Dec 2023 21:26:06 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "541",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/blog.fossko.ru\/pictures\/makros-avtomaticheskogo-sohraneniya-csv-iz-ekselya.png",
                    "https:\/\/blog.fossko.ru\/pictures\/makros-avtomaticheskogo-sohraneniya-csv-iz-ekselya-1.png",
                    "https:\/\/blog.fossko.ru\/pictures\/Parametry-Excel-2023-12-05-23.47.32.jpg",
                    "https:\/\/blog.fossko.ru\/pictures\/csv-2023-12-05-23.41.26.jpg"
                ]
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171)"
}