Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Поиск части текста в таблице по заданным значениям в ячейке, Имеется таблица с данными. Требуется создать формулу массива на другом листе для отображения определенных значений таблицы.
 
Уважаемые Друзья!Снова рад приветствовать Вас! Столкнулся с проблемой такого характера:
Имеется Таблица с данными на Листе1.
На листе2  требуется сформировать таблицу на основании данных в ячейках первой строки. Таблица на листе 2 должна отображать все значения где встречается фамилия автора.
Все работает если автор 1 если авторов несколько то данные строки не отображаются. Использую формулу:
Код
=ИНДЕКС(Таблица1[Автор];НАИМЕНЬШИЙ(ЕСЛИ((Лист2!$A$1=Таблица1[Автор])*(Лист2!$C$1=Таблица1[Отметка о выплате]);СТРОКА(Таблица1[Автор])-СТРОКА(Таблица1[[#Заголовки];[Автор]]);30);СТРОКА(ДВССЫЛ("A1:A"&ЧСТРОК(Таблица1[Автор])))))

Поиск по форуму ясности не дал...
Файл прилагаю.
Заранее Благодарен вам.
Слишком длинный строковый параметр
 
Все выполнено по высшему разряду...огромное спасибо пользователю БМФ за оказанную им помощь...
Слишком длинный строковый параметр
 
Отправил ответ в личку...
Слишком длинный строковый параметр
 
Не профессионалы устроят тоже)))в нашем деле главное решение проблемы...
Слишком длинный строковый параметр
 
Есть еще такое решение на др.форумах:
Вот кусок кода, который вылетал с ошибкой, потому что citeEn (наша переменная с текстом) был слишком длинным.

Код
With .Content.Find
   .Text = "#CitationPlaceholder#"
   .Replacement.Text = citeEn 'не больше 255 символов
   .Execute Replace:=wdReplaceAll
End With

Гугл рекомендовал мне рекурсивно разбивать .Replacement.Text на куски по 250 символов и автозаменять друг за другом. Однако громоздкость этого решения меня напугала, поэтому я подумал что лучше бы мне искать текст, выделять его, и заменять выделенное на наш большой текст:

Код
Selection.Find.ClearFormatting
Selection.Find.Execute FindText:="#CitationPlaceholder#", Wrap:=wdFindContinue
If Selection.Find.Found = True Then Selection.Text = citeEn 'много символов

Такой способ позволяет заменить как минимум 900 знаков, а дальше я не проверял.

У меня максимальная длина текста в ячейке составляет 700 знаков.
Слишком длинный строковый параметр
 
Когда то было написано такое решение проблемы но как это сделать технически не знаю...yangazitov.m, если ругается на Replacement.Text, то вместо .Execute Replace:=2 сделайте цикл: найти - вставить текст, снова найти и т.д. У метода Range.InsertBefore ограничения по длине нет (по крайней мере, строку длиной 5000 можно вставить).
Если не справитесь, приложите файлы, на которых можно отладить код.
Слишком длинный строковый параметр
 
Мой бюджет скромный...500 р я готов отдать за данную работу....и если можно конечно сделать что бы после генерирования шаблона он автоматически открывался...
Слишком длинный строковый параметр
 
Всем, Добрый день.

нужна помощь при написании макроса... тема уже заезженная, но подробного ответа так и не нашел... ошибка макроса "слишком длинный строковый параметр"...
Код
Сonst ИмяФайлаШаблона = "Шаблон Протокола.dot"
 КоличествоОбрабатываемыхСтолбцов = 11
Const РасширениеСоздаваемыхФайлов = ".doc"
 
Sub СоздатьПротокол()
   ПутьШаблона = Replace(ThisWorkbook.FullName,ThisWorkbook.Name, ИмяФайлаШаблона)
   НоваяПапка = NewFolderName & Application.PathSeparator
   Dim row As Range, pi As New ProgressIndicator
   r = Cells(Rows.Count, "A").End(xlUp).row: rc = r - 62
   If rc < 1 Then MsgBox "Строк для обработки не найдено",vbCritical: Exit Sub
 
   pi.Show "Формируется протокол оценки": pi.ShowPercents = True: s1 = 10: s2 = 90: p = s1: a = (s2 - s1) / rc
   pi.StartNewAction , s1, "Запуск приложения Microsoft Word"
 
   ' Dim WA As Word.Application, WD As Word.Document: Set WA = New Word.Application    ' c подключением библиотеки Word
   Dim WA As Object, WD As Object: Set WA =CreateObject("Word.Application")    ' без подключениябиблиотеки Word
 
   For Each row In ActiveSheet.Rows("63:" & r)
 With row
     ИмяПротокола = Trim$(.Cells(10))
     Filename = НоваяПапка & ИмяПротокола &РасширениеСоздаваемыхФайлов
 
     pi.StartNewAction p, p + a / 3, "Создание нового файла на основании шаблона", ИмяПротокола
     Set WD = WA.Documents.Add(ПутьШаблона): DoEvents
 
     pi.StartNewAction p + a / 3, p + a * 2 / 3, "Замена данных ...",ИмяПротокола
    For i = 1 To КоличествоОбрабатываемыхСтолбцов
   FindText = Cells(61, i): ReplaceText = Trim$(.Cells(i))
 
   ' так почему-то заменяет не всё (не затрагивает таблицу)
   'WA.Selection.Find.Execute FindText, , , , , , , wdFindContinue, False, ReplaceText, True
 
   pi.line3 = "Заменяется поле " & FindText
   With WD.Range.Find
 .Text = FindText
 .Replacement.Text = ReplaceText
 .Forward = True
 .Wrap = 1
 .Format = False: .MatchCase = False
 .MatchWholeWord = False
 .MatchWildcards = False
 .MatchSoundsLike = False
 .MatchAllWordForms = False
 .Execute Replace:=2
   End With
   DoEvents
     Next i
     pi.StartNewAction p + a * 2 / 3, p + a, "Сохранение файла...", ИмяПротокола, " "
     WD.SaveAs Filename: WD.Close False: DoEvents
     p = p + a
 End With
   Next row
 
   pi.StartNewAction s2, , "Завершение работы приложенияMicrosoft Word", " ", " "
   WA.Quit False: pi.Hide
   msg = "Сформирован " & rc & " протокол оценки. Он находится в папке" & vbNewLine & НоваяПапка
   MsgBox msg, vbInformation, "Готово"
End Sub
 
Function NewFolderName() As String
   NewFolderName = Replace(ThisWorkbook.FullName,ThisWorkbook.Name, "Готовые протоколы по службам")
End Function
 
Function Get_Date() As String: Get_Date = Replace(Replace(DateValue(Now), "/", "-"), ".", "-"): End Function
Function Get_Time() As String: Get_Time = Replace(TimeValue(Now), ":", "-"): End Function
Function Get_Now() As String: Get_Now = Get_Date & " в " &Get_Time: End Function

Пример файлов в приложении пароль архива 54989
[ Закрыто] Слишком длинный строковый параметр, Ребят нужна помощь профессионалов
 
Эх слова, слова...как это на деле исправить можно что бы не делать изменения не в таблице и не в шаблоне...вот в чем вопрос...
[ Закрыто] Слишком длинный строковый параметр, Ребят нужна помощь профессионалов
 
Одни косяки за мной блин...на работе сеть защищена файлы с макросами автоматом удаляет поэтому архив зашифровал...пароль 54989...тысяча извенений...
[ Закрыто] Слишком длинный строковый параметр, Ребят нужна помощь профессионалов
 
Файл для примера с аналогичным кодом
[ Закрыто] Слишком длинный строковый параметр, Ребят нужна помощь профессионалов
 
Как правильно офлрмить код?и где найти рубрику работа?Спасибо заранее, ни разу не профессионал)))!!!
[ Закрыто] Слишком длинный строковый параметр, Ребят нужна помощь профессионалов
 
Всем, Добрый день.

нужна помощь при написании макроса... тема уже заезженная, но подробного ответа так и не нашел... ошибка макроса "слишком длинный строковый параметр"...

Есть ли у кого нибудь актуальное решение данного вопроса?
Скрытый текст
Изменено: EvgenTor - 20.02.2019 15:07:18 (Оформил текс кода)
Страницы: 1
Наверх