Я пытаюсь использовать один лист Excel, содержащий несколько строк данных, и создавать отдельные книги для каждой из этих строк, используя одно из значений в строке в качестве имени новой книги , Эти книги будут сохранены в виде разделенных запятой книг, чтобы их можно было загрузить в контроллер для части оборудования. Я могу вручную открыть новую книгу и получить внешнюю ссылку на ячейки из базовой книги, но я смущен тем, как писать цикл, чтобы он автоматически перемещался по строкам и создавал новую книгу и как использовать одно из значений в качестве имя новой книги.Создание новой книги для каждой строки в существующей книге
Базовая книга структурирована в строках от A до J, где столбец A содержит значение, которое я хочу сохранить в новой книге как. Новая книга должна перенести значения и разбить строку на два столбца (это связано со структурой управляющей программы на машине, а не с тем, что я могу изменить). Первый столбец в новой книге будет содержать значения от В до Н и второй столбец будет содержать значения от I и J.
Для пояснения: строка рабочей книги Base - х хх ххх хххх ххххх ... Х ХХ
Новый формат книги - маленькие иксы бы записи столбцов A и капитал X будет столбец записи в Б.
Я могу сделать выше, и преобразовать строку в двух отдельных столбцов в новой книге , Я также попытался рассмотреть похожие вопросы и ответы для этого, но не смог собрать вместе способ сделать вышеупомянутую работу.
Может ли кто-нибудь дать некоторые идеи о том, как подойти к написанию цикла для книги? Я не против играть с ним и пытаться заставить его работать, но признаться, что я над головой начал с автоматического перехода по строкам и сохранения новой книги путем ссылки на значение ячейки в базовой книге.
Спасибо за любую помощь, которую кто-либо может предоставить.
код из макроса приведен ниже:.
Sub Macro6()
'
' Macro6 Macro
'
' Keyboard Shortcut: Ctrl+q
'
Workbooks.Add
Application.Left = 721
Application.Top = 1
Application.Width = 720
Application.Height = 780
Windows("TEST.xlsx").Activate
Range("B2:H2").Select
Selection.Copy
Windows("Book10").Activate
Range("A1:A7").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Range("B1").Select
Windows("B9 for Import TEST.xlsx").Activate
Range("I2:J2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Book10").Activate
Range("B1:B2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Windows("TEST.xlsx").Activate
End Sub
Он будет работать копию над данными один раз, но потом говорит мне, что индекс находится вне диапазона выделяя ~ Окна («Book10») Активировать ~ линия.
Загрузите код, который вы пробовали до сих пор. И ваше разъяснение xxxxx кажется запутанным. – ZAT
Да, я написал X в столбце, но когда я разместил его, просто поместил их в строку, поэтому я отредактировал это. – Talan0227
Что касается вашего текущего кода: я бы избежал использования .copy и .pastespecial в VBA, особенно при выполнении более сложных вещей, таких как то, что вам нужно. Гораздо лучше использовать прямые ссылки на ячейки в сочетании с циклами For, как вы видите в моем ответе ниже. – BobbitWormJoe