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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2016, 14:16   #11
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub my2()
  Dim r As Long, c as Long
  Dim wb As Workbook, wb1 As Workbook, sFT As Worksheet
  Const st1 As String = "c15 d15 g15 h15 h16 h17 h18 i15 i16 i17 i18 j16 k16 l15 l16 l17 l18 g26"
  Const st2 As String = "c27 d27 g27 h27 h28 h29 h30 i27 i28 i29 i30 j28 k28 l27 l28 l29 l30 g38"
  Const sc As String = "1 23 3 4 5 6 7 8 9 10 11 16 17 12 13 14 15 27"
  Set wb = ThisWorkbook:  Set sFT = wb.WorkSheets("FT")
  Application.ScreenUpdating = False:  Application.Calculation = xlCalculationManual
  For r = 3 To sFT.Cells(sFT.Rows.Count, 1).End(xlUp).Row Step 2
    wb.Sheets("Шаблон").Copy after:=wb.Sheets(wb.Sheets.Count)
    With wb.Sheets(wb.Sheets.Count)
      .Name = Left(sFT.Cells(r, 1), 31)
      For c = 0 To UBound(Split(st1))
        .Range(Split(st1)(c)).Formula = "=" & sFT.Cells(r + 0, Val(Split(sc)(c))).Address(external:=True)
        .Range(Split(st2)(c)).Formula = "=" & sFT.Cells(r + 1, Val(Split(sc)(c))).Address(external:=True)
      Next
    End With
  Next r
  MsgBox "Готово"
  Application.ScreenUpdating = True:  Application.Calculation = xlCalculationAutomatic
End Sub
собственно я это уже один раз писал, но повторим, а вдруг...
скопируйте это себе. один раз выполните my1, а второй раз my2. найдите 10 отличий в полученных двумя разными макросами результатах

Цитата:
Я четко и конкретно определил задачу
а это заблуждение. задача обрисована очень крупными мазками, а конкретные детали не прорисованы и не понятны
в такой постановке предложить код, который точно решит Вашу задачу может ТОЛЬКО ОЧЕНЬ СИЛЬНЫЙ ЭКСТРАСЕНС
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 22.01.2016 в 16:24.
IgorGO вне форума Ответить с цитированием
Старый 22.01.2016, 15:52   #12
eemil
Пользователь
 
Регистрация: 15.01.2016
Сообщений: 24
По умолчанию

Согласен с вами. Код так даже быстрее работает. НО как тоже самое проделать для Word? Только вместо "wb.Sheets("Шаблон")" нужно использовать шаблон Word, который находится, например, на диске (D:\shablon\Doc1.doc) и вместо "Const st1 As String = "c15 d15 g15 h15 h16 h17 h18 i15 i16 i17 i18 j16 k16 l15 l16 l17 l18 g26" использовать закладки в шаблоне, например "закладка1" "закладка2" ... "закладка18" и связывать эти закладки с ячейками в рабочей книги которые "Const sc As String = "1 23 3 4 5 6 7 8 9 10 11 16 17 12 13 14 15 27". Все это должно реализовываться в одном документе Word??
eemil вне форума Ответить с цитированием
Старый 22.01.2016, 16:16   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в постановке любой задачи должны быть понятны ответы на следующие вопросы:

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

когда есть ТОЧНЫЕ ответы по каждому из пунктов - только тогда можно что-то делать, а если чего-то не понятно - бессмысленно!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.01.2016, 16:32   #14
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

eemil вывод о вашей компетенции был сделан на основании вашего высказывания о непонимании кода, записанного макрорекордером. Впрочем, вы можете реабилитироваться. В архиве макрос LinkToWord в обычном модуле книги код.xlsb, вставляющий связь в текст документа Word по позиции вкладок.
Поскольку вы не соизволили описать, как сопоставляются адреса ячеек, в коде сопоставляются равные имена ячеек равным названиям закладок.
Сможете реализовать дальше?
Вложения
Тип файла: zip Folder1.zip (23.3 Кб, 12 просмотров)
AndVGri вне форума Ответить с цитированием
Старый 22.01.2016, 17:15   #15
eemil
Пользователь
 
Регистрация: 15.01.2016
Сообщений: 24
По умолчанию

Во вложенном файле, готовый проект в Excel (последний2.xlsm) с макросами. Первые 12 листов это базы данных, перечни приборов со своими параметрами. Следующие листы это шаблоны, из которых формируются опросные листы. Для примера достаточно взять первый лист ТТ и связанный с ним "Шаблон_ТТ". По нажатию кнопки на первом листе "Создать опросной лист" запускается макрос и создается отдельная книга на основе шаблона. Все данные из листа ТТ по строчно связаны с шаблоном, в макросе все написано. В архиве так же есть шаблон Word с закладками. Эти закладки нужно связать (специальная вставка_связь RTF) с данными из рабочей книги (последний2.xlsm), лист ТТ по такому же принципу как и для шаблонов в Excel. По нажатию кнопки должен сформироваться документ в Word с множеством заполненных листов. Какие закладки и с какими строками (ячейками) связывать прописано в текстовом файле "Ячейки_закладки".
Вложения
Тип файла: zip готовый_проект.zip (337.6 Кб, 16 просмотров)
eemil вне форума Ответить с цитированием
Старый 22.01.2016, 17:19   #16
eemil
Пользователь
 
Регистрация: 15.01.2016
Сообщений: 24
По умолчанию

Повторюсь, все листы в рабочей книге пересматривать необязательно. И в текстовом файле "Ячейки_закладки" указаны координаты именно для листа ТТ, рабочей книги "последний2.xlsm"
eemil вне форума Ответить с цитированием
Старый 22.01.2016, 17:28   #17
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и еще одно замечание:

чем больше в теме "пустых" сообщений (как вот это), тем меньше к ней интерес и тем меньше вероятность получить точное решение проблемы
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос на изменение источника связи между Word и Excel Василий. Microsoft Office Word 16 24.11.2018 20:29
Ускорить обновление связи Word и Excel Foxx Microsoft Office Word 1 06.03.2012 00:26
Word долго обновляет связи с Excel ZSFoS Microsoft Office Word 1 26.12.2011 12:59
Связи excel c word Vladymyr17 Microsoft Office Excel 0 28.09.2009 15:52