Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2018, 21:47   #71
dim8080
Новичок
Джуниор
 
Регистрация: 15.10.2018
Сообщений: 2
По умолчанию

Добрый день! как соединить 2 макроса?

Код:
Sub DivFile()
    Dim i As Long, s As String, ws As Worksheet
    Application.ScreenUpdating = False: Set ws = ActiveSheet
    For i = 1 To ws.UsedRange.Row + ws.UsedRange.Rows.Count - 1 Step 500
        Workbooks.Add xlWBATWorksheet: ws.Rows(i & ":" & i + 499).Copy [A1]
        s = Replace(ThisWorkbook.FullName, ".xls", "-" & (Fix(i / 500) + 1) & ".xls")
        ActiveWorkbook.SaveAs s: ActiveWorkbook.Close
    Next
End Sub

Sub Макрос1()  
Dim a$  
a = Cells(1, 1) 'a1 name  
ActiveWorkbook.SaveAs Filename:= _  
"C:\Users\.........\ИМЯ ФАЙЛА\" & a & ".xlsm"  
End Sub
Необходимо разбить файл exel на файлы с определенным количеством строк, полученные файлы необходимо сохранять с именем в зависимости от значений в определенной ячейке.
Еще момент, если делаю разбивку 1 макросом уходит форматирование. это поправимо?

Последний раз редактировалось Arigato; 17.10.2018 в 14:07.
dim8080 вне форума Ответить с цитированием
Старый 17.10.2018, 16:33   #72
newsky13
Новичок
Джуниор
 
Регистрация: 17.10.2018
Сообщений: 1
По умолчанию

Подскажите пожалуйста, что у меня не так с данным макросом:
Цитата:
Сообщение от SAS888 Посмотреть сообщение
Не зависимо от количества строк, можно так:
Код:
Sub DivFile()
    Dim i As Long, s As String, ws As Worksheet
    Application.ScreenUpdating = False: Set ws = ActiveSheet
    For i = 1 To ws.UsedRange.Row + ws.UsedRange.Rows.Count - 1 Step 500
        Workbooks.Add xlWBATWorksheet: ws.Rows(i & ":" & i + 499).Copy [A1]
        s = Replace(ThisWorkbook.FullName, ".xls", "-" & (Fix(i / 500) + 1) & ".xls")
        ActiveWorkbook.SaveAs s: ActiveWorkbook.Close
    Next
End Sub
Office 2016. При попытке запустить макрос, получаю следующее:





В первый файл (который создаёт макрос и даёт имя Лист1.xlsx но не сохраняет) данные в виде заголовка и 499 строк заносятся и всё, вылетает эта ошибка (судя по этой ветке не у меня одного, были подобные вопросы но остались без ответа). Далее. Если в макросе удалить s: и оставить только
Код:
ActiveWorkbook.SaveAs: ActiveWorkbook.Close
Файлы таки создаются, но заголовок имеется только в первом файле, сохраняются файлы не рядом с исходным, а в системную папку Документы и в формате *xlsx (хотя для чистоты эксперимента, раз в макросе указан xls я и пробовал на xls. Да и на xlsx то-же пробовал)

Помогите пожалуйста воспользоваться данным макросом, что-бы он...
1. Работал изначально с *.xlsx файлами и сохранял результат в *.xlsx
2. Сохранял результаты рядом с исходным файлом
3. Новые файлы имели такое-же имя, как и исходник плюс префикс (любой)
4. Что-бы он просто заработал...

Последний раз редактировалось newsky13; 17.10.2018 в 16:36.
newsky13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа разделения экрана на несколько частей ArtInt Софт 8 14.05.2012 10:29
Файл в несколько терабайт в архиве. Alex Cones Свободное общение 28 01.03.2010 17:08
Разбить Bitmap на несколько частей apromix Мультимедиа в Delphi 4 24.02.2010 11:26
Можно ли разделить сразу несколько цифр на одно и тоже число? Xell Microsoft Office Excel 2 12.01.2009 13:32
Как добавить в файл несколько строк?! zotox Помощь студентам 4 11.09.2008 22:32