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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование части таблицы в другой лист - Мир MS Excel

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

Excel 2010
Доброго времени суток!

Нужна помощь в исправлении кода. Задача такая. Нужно чтоб макрос проверял по списку "№ пример" 1,2 или 1,2,3 и т.д. и копировал столько же кусков таблицы в новый лист и потом сохранял получившеюся таблицу в отдельный файл. Я написал макрос но на 3 шаге копируется не тот диапазон. Нужен свежий взгляд. Я не силен в VBA. Пример прикрепил и вот сам код. Спасибо.

[vba]
Код

Sub Макрос1()

Dim n As Range
Dim i As Integer, f As Integer, q As Integer
Dim l As Long
Dim g As Long
Dim p As Integer
Dim o As Long

q = 0
f = 0
i = 2
l = 6
g = 19
p = 0

For f = f To 179
q = q + 1
p = p + 1

Set n = Cells(i, "I")
Cells(i, "I").Select

If n = 1 Then

Sheets("Лист2").Select

Range("A" & l & ":C" & g).Select 'копирует выделенный диапазон'
Selection.Copy
Sheets("Лист1").Select ' переходит на другой лист и вставляет'
Range("A6").Select
Selection.Insert Shift:=xlDown

MkDir ("D:\Macros\M" & "\" & q) 'создает папку в существеющую папку'

Sheets("Лист2").Select 'удаляет скопированую часть таблицы'
Range("A6").Select
Range("A" & l & ":C" & g).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp

ThisWorkbook.SaveAs Filename:="D:\Macros\M" & "\" & q & "\" & q & ".xlsx", FileFormat:=51 'сохраняет файл'

Sheets("Лист1").Select 'удаляет скопированое для следуещего копирования'
Range("A6").Select
Range("A" & l & ":C" & g).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp

l = 6
g = 12

i = i + 1

MsgBox True

Else

Sheets("Лист2").Select
Range("A6").Select

l = l + 8
g = g + 8

Cells(i, "I").Select
i = i + 1

MsgBox False

End If

Next f

End Sub
[/vba]
К сообщению приложен файл: 3290172.xlsm (60.7 Kb)


Сообщение отредактировал DmytroLevchenko - Пятница, 17.11.2017, 15:32
 
Ответить
СообщениеДоброго времени суток!

Нужна помощь в исправлении кода. Задача такая. Нужно чтоб макрос проверял по списку "№ пример" 1,2 или 1,2,3 и т.д. и копировал столько же кусков таблицы в новый лист и потом сохранял получившеюся таблицу в отдельный файл. Я написал макрос но на 3 шаге копируется не тот диапазон. Нужен свежий взгляд. Я не силен в VBA. Пример прикрепил и вот сам код. Спасибо.

[vba]
Код

Sub Макрос1()

Dim n As Range
Dim i As Integer, f As Integer, q As Integer
Dim l As Long
Dim g As Long
Dim p As Integer
Dim o As Long

q = 0
f = 0
i = 2
l = 6
g = 19
p = 0

For f = f To 179
q = q + 1
p = p + 1

Set n = Cells(i, "I")
Cells(i, "I").Select

If n = 1 Then

Sheets("Лист2").Select

Range("A" & l & ":C" & g).Select 'копирует выделенный диапазон'
Selection.Copy
Sheets("Лист1").Select ' переходит на другой лист и вставляет'
Range("A6").Select
Selection.Insert Shift:=xlDown

MkDir ("D:\Macros\M" & "\" & q) 'создает папку в существеющую папку'

Sheets("Лист2").Select 'удаляет скопированую часть таблицы'
Range("A6").Select
Range("A" & l & ":C" & g).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp

ThisWorkbook.SaveAs Filename:="D:\Macros\M" & "\" & q & "\" & q & ".xlsx", FileFormat:=51 'сохраняет файл'

Sheets("Лист1").Select 'удаляет скопированое для следуещего копирования'
Range("A6").Select
Range("A" & l & ":C" & g).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp

l = 6
g = 12

i = i + 1

MsgBox True

Else

Sheets("Лист2").Select
Range("A6").Select

l = l + 8
g = g + 8

Cells(i, "I").Select
i = i + 1

MsgBox False

End If

Next f

End Sub
[/vba]

Автор - DmytroLevchenko
Дата добавления - 17.11.2017 в 14:35
Pelena Дата: Пятница, 17.11.2017, 20:54 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19176
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Не совсем понятно, что надо копировать и в каком порядке, поясните подробнее


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Не совсем понятно, что надо копировать и в каком порядке, поясните подробнее

Автор - Pelena
Дата добавления - 17.11.2017 в 20:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование части таблицы в другой лист (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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