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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2012, 10:57   #41
makc9I
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 11
По умолчанию

Казанский, простите, действительно не заметил. Буду пробовать.
makc9I вне форума Ответить с цитированием
Старый 26.10.2012, 11:06   #42
makc9I
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 11
По умолчанию

небольшая проблемка, перед каждым сохранением спрашивает : сохранить файл? Как это автоматизировать?
makc9I вне форума Ответить с цитированием
Старый 26.10.2012, 11:42   #43
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от makc9I Посмотреть сообщение
R Dmitry, он весит 300 метров и содержит неразглашаемые данные, так что нельзя ( Могу скинуть dbf с такой же структурой, но без данных или сам впишу пару тройку рендомных данных
сбрасывайте десяток строк и файл с идентичной структурой.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 26.10.2012, 12:01   #44
makc9I
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 11
По умолчанию

R Dmitry, да вроде все уже получилось. Итоговый скрипт выглядит так:
Код:
Sub split()
    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 1000
        Workbooks.Add xlWBATWorksheet: ws.Rows(i & ":" & i + 999).Copy [A1]
        s = Replace(ThisWorkbook.FullName, ".dbf", "-" & (Fix(i / 1000) + 1) & ".dbf")
        ActiveWorkbook.SaveAs s, xlDBF3
        ActiveWorkbook.Close
    Next
End Sub
Осталось только отключить Alert'ы и все.
makc9I вне форума Ответить с цитированием
Старый 23.08.2016, 08:14   #45
GMV20061
Пользователь
 
Регистрация: 22.08.2016
Сообщений: 15
По умолчанию

Цитата:
Сообщение от 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
Искал решение для своей проблемки. Нашел у Вас. Большое спасибо.
Подскажите пож как изменить строку
s = Replace(ThisWorkbook.FullName, ".xls", "-" & (Fix(i / 500) + 1) & ".xls")
чтобы имя каждого созданного файла соответствовало определенной ячейке в исходном файле (указаны уникальные значения). Например С9; С35; С61 и т.д., т.е в одном столбце через равное количество строк. Спасибо.
GMV20061 вне форума Ответить с цитированием
Старый 23.08.2016, 08:37   #46
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
s = Replace(ThisWorkbook.FullName, ".xls", "-C" & i & ".xls")
Так не будет?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 23.08.2016, 08:42   #47
GMV20061
Пользователь
 
Регистрация: 22.08.2016
Сообщений: 15
По умолчанию

Спасибо! Буду пробовать!
GMV20061 вне форума Ответить с цитированием
Старый 23.08.2016, 09:33   #48
GMV20061
Пользователь
 
Регистрация: 22.08.2016
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
s = Replace(ThisWorkbook.FullName, ".xls", "-C" & i & ".xls")
Так не будет?
Что-то не хочет. Выдает ошибку по строке
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 26
Workbooks.Add xlWBATWorksheet: ws.Rows(i & ":" & i + 25).Copy [A1]
s = Replace(ThisWorkbook.FullName, ".xls", "-C" & i & ".xls")
ActiveWorkbook.SaveAs s: ActiveWorkbook.Close Next
End Sub
GMV20061 вне форума Ответить с цитированием
Старый 23.08.2016, 09:43   #49
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Какую?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 23.08.2016, 13:43   #50
GMV20061
Пользователь
 
Регистрация: 22.08.2016
Сообщений: 15
По умолчанию

При запуске макроса ничего не происходит.
При входе в макрос желтым выделяет строку
ActiveWorkbook.SaveAs s: ActiveWorkbook.Close
GMV20061 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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