Можно ли как-то сделать так, чтобы при открытии документа если есть текст со шрифтом Time New Roman он заменялся на Arial?
» Word VBA
Troitsky
Чесно я эти варианты не проверила, потомучто по другому сделала, что-то типа твоего каскада и получилось. Одним словом прибегла к использованию формы с возможностью выбора, а не подменю.
Чесно я эти варианты не проверила, потомучто по другому сделала, что-то типа твоего каскада и получилось. Одним словом прибегла к использованию формы с возможностью выбора, а не подменю.
возникла следующая проблемка:
приходит файлик с програмой передач. ночной повтор выделен красным. его нужно скопировать в конец страницы. может кто подкажеткак определить начало и конец блока с измененым цветом чтобы его вирезать и вставить в другое место документа
приходит файлик с програмой передач. ночной повтор выделен красным. его нужно скопировать в конец страницы. может кто подкажеткак определить начало и конец блока с измененым цветом чтобы его вирезать и вставить в другое место документа
Существует следующая задача:
есть файл .doc содержащий тест . необходимо в нем произвести поиск и замену групп цифр на слова. Есть таблица в Excele которая содержит искомые группы цифр и слова на которые необходимо произвести замену.
Я себе представляю решение задачи последовательным перебором искомых значений из таблицы. Но вот не представляю как это реализовать в жизнь.
Видимо задача элементарная. Но у меня к сожалению отсутствует опыт для ее решения.
Подскажите плз решение. Зарание благодарен.
есть файл .doc содержащий тест . необходимо в нем произвести поиск и замену групп цифр на слова. Есть таблица в Excele которая содержит искомые группы цифр и слова на которые необходимо произвести замену.
Я себе представляю решение задачи последовательным перебором искомых значений из таблицы. Но вот не представляю как это реализовать в жизнь.
Видимо задача элементарная. Но у меня к сожалению отсутствует опыт для ее решения.
Подскажите плз решение. Зарание благодарен.
Люди помогите. Не могу решить следующую задачу:
1) Имеется доковский файл в котором написаны различние методички, книги и т.д.
2)Также имеется документ эксель в котором эти методички и книги перечисляются, например: "Работа с Word" Пупкин Г.Г., Петров К.К.
3)При написании новой методички мне нужно например ссылатся на другие методички и книги ( из пункта 1) ).Необходимо создать макрос который будет выводить форму,на которой я буду выбирать необходимые методички и книги и затем при нажатии на кнопку на форме выбранные мной методички будут добавляться в документ в виде ссылок на методички в докомском файле из 1)
Что-то наподобии перекрестных ссылок
1) Имеется доковский файл в котором написаны различние методички, книги и т.д.
2)Также имеется документ эксель в котором эти методички и книги перечисляются, например: "Работа с Word" Пупкин Г.Г., Петров К.К.
3)При написании новой методички мне нужно например ссылатся на другие методички и книги ( из пункта 1) ).Необходимо создать макрос который будет выводить форму,на которой я буду выбирать необходимые методички и книги и затем при нажатии на кнопку на форме выбранные мной методички будут добавляться в документ в виде ссылок на методички в докомском файле из 1)
Что-то наподобии перекрестных ссылок
Troitsky
Спасибо!
Довольно доходчиво и понятно. По пробую переделать под свою специфику. Думаю что все получится, но если что, то еще чуть чуть по мучаю
Спасибо!
Довольно доходчиво и понятно. По пробую переделать под свою специфику. Думаю что все получится, но если что, то еще чуть чуть по мучаю
Troitsky
Спасибо применил, все работает. добавил цыкл, все супер.
Появился новый вопрос как сделать так, чтобы заменяемый текст имел отличное от основного текста форматирование, цвет, шрифт, размер.
По пробовал проделать при помощи Поиск и замена. Записал макрос, а в нем ни фига ни каких параметров не отражается.
Что делать или где прочитать?
Заранее благодарен
Спасибо применил, все работает. добавил цыкл, все супер.
Появился новый вопрос как сделать так, чтобы заменяемый текст имел отличное от основного текста форматирование, цвет, шрифт, размер.
По пробовал проделать при помощи Поиск и замена. Записал макрос, а в нем ни фига ни каких параметров не отражается.
Что делать или где прочитать?
Заранее благодарен
Как сделать привязку ListBox к текстовому курсору?
Добавлено:
Как программно установить горячие клавиши,при нажатии на которые совершалось бы какое-н. действие?
Добавлено:
Как программно установить горячие клавиши,при нажатии на которые совершалось бы какое-н. действие?
BigJB
Делать в цикле замену с wdReplaceOne и в момент, пока заменяемый текст выделен, менять шрифт, цвет и т.д.
Делать в цикле замену с wdReplaceOne и в момент, пока заменяемый текст выделен, менять шрифт, цвет и т.д.
Как макросом все формулы и числа в большом документе MS Word заменить вот так:
PV=(m/M)RT [обычный текст] -> PV=(m/M)RT [объект Microsoft Equation 3.0]
Признак формулы - знаки арифметических действий и только латинские символы и цифры.
PV=(m/M)RT [обычный текст] -> PV=(m/M)RT [объект Microsoft Equation 3.0]
Признак формулы - знаки арифметических действий и только латинские символы и цифры.
граждане, у кого есть опыт решения такой проблемы.
в ворде есть вложенные таблицы эксель, как их вытащить в эксель обратно в одну книгу на разные листы?
Добавлено:
есть кусок кода:
Private lngI As Long
Public Sub FromWordToExcel()
Dim sh As Word.InlineShape
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWbNew As Excel.Workbook
Dim xlWs As Excel.Worksheet
Dim strCaption As String
Set xlApp = New Excel.Application
xlApp.Visible = True
Set xlWbNew = xlApp.Workbooks.Add
For Each sh In ActiveDocument.InlineShapes
If sh.OLEFormat.ProgID = "Excel.Sheet.8" Then
sh.OLEFormat.ActivateAs ClassType:="Excel.Sheet.8"
sh.OLEFormat.Activate
Set xlWb = sh.OLEFormat.Object
strCaption = fnFindField(lngI)
Set xlWs = xlWbNew.Worksheets.Add
xlWs.Name = strCaption
xlWb.Worksheets(1).UsedRange.Copy xlWs.Range("A1")
lngI = lngI + 1
End If
Next sh
End Sub
Public Function fnFindField(lngI As Long) As String
Dim intPos As Integer
Dim fld As Word.Field
Do
lngI = lngI + 1
intPos = InStr(ActiveDocument.Fields(lngI).Code, "SEQ")
Loop Until intPos > 0
Set fld = ActiveDocument.Fields(lngI)
fnFindField = Mid(Trim(fld.Code), 4, _
Len(Trim(fld.Code)) - InStr(Trim(fld.Code), "\") - 4) & " " & fld.Result
End Function
Выдает ошибку в строке:
If sh.OLEFormat.ProgID = "Excel.Sheet.8" Then и
xlWb.Worksheets(1).UsedRange.Copy xlWs.Range("A1")
в документе лежит много таких вложенных таблиц, вылетает на 8 таблице
Добавлено:
есть идеи?
в ворде есть вложенные таблицы эксель, как их вытащить в эксель обратно в одну книгу на разные листы?
Добавлено:
есть кусок кода:
Private lngI As Long
Public Sub FromWordToExcel()
Dim sh As Word.InlineShape
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWbNew As Excel.Workbook
Dim xlWs As Excel.Worksheet
Dim strCaption As String
Set xlApp = New Excel.Application
xlApp.Visible = True
Set xlWbNew = xlApp.Workbooks.Add
For Each sh In ActiveDocument.InlineShapes
If sh.OLEFormat.ProgID = "Excel.Sheet.8" Then
sh.OLEFormat.ActivateAs ClassType:="Excel.Sheet.8"
sh.OLEFormat.Activate
Set xlWb = sh.OLEFormat.Object
strCaption = fnFindField(lngI)
Set xlWs = xlWbNew.Worksheets.Add
xlWs.Name = strCaption
xlWb.Worksheets(1).UsedRange.Copy xlWs.Range("A1")
lngI = lngI + 1
End If
Next sh
End Sub
Public Function fnFindField(lngI As Long) As String
Dim intPos As Integer
Dim fld As Word.Field
Do
lngI = lngI + 1
intPos = InStr(ActiveDocument.Fields(lngI).Code, "SEQ")
Loop Until intPos > 0
Set fld = ActiveDocument.Fields(lngI)
fnFindField = Mid(Trim(fld.Code), 4, _
Len(Trim(fld.Code)) - InStr(Trim(fld.Code), "\") - 4) & " " & fld.Result
End Function
Выдает ошибку в строке:
If sh.OLEFormat.ProgID = "Excel.Sheet.8" Then и
xlWb.Worksheets(1).UsedRange.Copy xlWs.Range("A1")
в документе лежит много таких вложенных таблиц, вылетает на 8 таблице
Добавлено:
есть идеи?
собственно такая проблема:
имеется XML-документ Word2003, доступный собственно из word (т.е. не с диска, а через объектную модель ворда). Хочется получить полное деревое XMLины, однако ворд, насколько я понимаю, обрабатывает всё что относится к присоединённой схеме отдельно. Т.е. я имею доступ только к нодам из моего пространства имён. Как жа получить из остальных пространиств имен (w, o, ...), которые определяют в т.ч. оформление текста и т.д.
(http://forum.ru-board.com/topic.cgi?forum=33&topic=7091)
имеется XML-документ Word2003, доступный собственно из word (т.е. не с диска, а через объектную модель ворда). Хочется получить полное деревое XMLины, однако ворд, насколько я понимаю, обрабатывает всё что относится к присоединённой схеме отдельно. Т.е. я имею доступ только к нодам из моего пространства имён. Как жа получить из остальных пространиств имен (w, o, ...), которые определяют в т.ч. оформление текста и т.д.
(http://forum.ru-board.com/topic.cgi?forum=33&topic=7091)
Знатоки помогите решить проблему. Необходимо в открытом документе Word снизу на последнем листе программно создать две кнопки "Назад" и "Далее". После заполнения документа из макроса, нужно вернуться назад и исправить исходные данные, если есть ошибки, или продолжить далее.
Я может быть ошибся с топиком, но мне кажется, что это наиболее близкая тема. Суть вопроса: очень хочется сделать скроллинг OLE-объкта(в моем случае это word) на форме в Access. Без скроллинга делать умею, но нужен именно скроллинг! Очень нужно и как можно стрее
Заранее благодарен.
Заранее благодарен.
Archimed
Ну я бы создал свою панель через VBA и наней две кнопки с процедурами а вних код.
А что значит назад это отменить все изминения все сделаные макросом или разрешить просто пользователю править данные?
Цитата:
Ну я бы создал свою панель через VBA и наней две кнопки с процедурами а вних код.
А что значит назад это отменить все изминения все сделаные макросом или разрешить просто пользователю править данные?
Цитата:
Dim customBar As CommandBar
Dim newButton As CommandBarButton
Set customBar = CommandBars.Add("Custom")
Set newButton = customBar.Controls _
.Add(msoControlButton, CommandBars("Edit") _
.Controls("Cut").Id)
Set newButton = customBar.Controls _
.Add(msoControlButton, CommandBars("Edit") _
.Controls("Copy").Id)
Set newButton = customBar.Controls _
.Add(msoControlButton, CommandBars("Edit") _
.Controls("Paste").Id)
customBar.Visible = True
Помогите пожалуйста!
Суть проблемы: в файл с текстом вставляются картинки, распознанные в файнридере и перенесенные в другой вордовский файл. По умолчанию они вставляются с левого края положение "в тексте" расстояние до текста слева-справа 0,32. Нужно положение "сверху и снизу" выравнивание центр расстояние до текста слева-справа 0.
Хочу создать макрос, который при нажатии горячих клавиш автоматически вставляет объект с нужным форматирование или же применяет сразу нужное форматирование к только что вставленному объекту. Пробовала через макрорекордер, но в режиме записи не могу даже выделить вставленный объект - мышь не выделяет объект, если начинаю запись при уже выделенном вставленном объекте, то выходя в Формат/Рисунок/Положение - кнопка "Дополнительно" и раздел обтекание неактивны. Причем для ранее вставленных и отформатированных рисунков эти опции активны.
Может кто-то подскажет как обратится из VBA к только что вставленному объекту?
Суть проблемы: в файл с текстом вставляются картинки, распознанные в файнридере и перенесенные в другой вордовский файл. По умолчанию они вставляются с левого края положение "в тексте" расстояние до текста слева-справа 0,32. Нужно положение "сверху и снизу" выравнивание центр расстояние до текста слева-справа 0.
Хочу создать макрос, который при нажатии горячих клавиш автоматически вставляет объект с нужным форматирование или же применяет сразу нужное форматирование к только что вставленному объекту. Пробовала через макрорекордер, но в режиме записи не могу даже выделить вставленный объект - мышь не выделяет объект, если начинаю запись при уже выделенном вставленном объекте, то выходя в Формат/Рисунок/Положение - кнопка "Дополнительно" и раздел обтекание неактивны. Причем для ранее вставленных и отформатированных рисунков эти опции активны.
Может кто-то подскажет как обратится из VBA к только что вставленному объекту?
RedPromo
Спасибо эту проблему я решил. Сейчас возникла другая. Не работает команда MkDir "D:Dokum". Папка не создается. Пробовал и в 2000 офисе и 2003. Может виноват Windows XP SP2, потому что на работе в Win2000 и офисе 2000 все прекрасно создается. Прошу, ради эксперимента, у кого ХР и SP2 попробовать и сообщить результат. Если сработает выложите код сюда, я у себя опробую. Я уже грешу на все. Может какая библиотека не подключена для работы с NTFS XP?
Вопрос снят. На одном из форумов нашел. что это проделки антивируса Касперского. Снял его защиту и все сработало. Только вот как теперь этого гада обойти?
Спасибо эту проблему я решил. Сейчас возникла другая. Не работает команда MkDir "D:Dokum". Папка не создается. Пробовал и в 2000 офисе и 2003. Может виноват Windows XP SP2, потому что на работе в Win2000 и офисе 2000 все прекрасно создается. Прошу, ради эксперимента, у кого ХР и SP2 попробовать и сообщить результат. Если сработает выложите код сюда, я у себя опробую. Я уже грешу на все. Может какая библиотека не подключена для работы с NTFS XP?
Вопрос снят. На одном из форумов нашел. что это проделки антивируса Касперского. Снял его защиту и все сработало. Только вот как теперь этого гада обойти?
Проблема решена, если кому-то интересно могу выложить код
Подскажите, как из Worda получить доступ к файлу Exel и забрать содержимое нужных ячеек. Заранее спасибо.
Archimed
А вто так
Цитата:
и т.д. в зависимости от поставленой задачи
А вто так
Цитата:
Dim xlApp As Excel.Application
Dim xlSheet As Excel.WorkSheet
Dim xlRange AS Exel.Range
Set xlApp = CreateObject("Excel.Application")
xlApp.Worbooks.Open('C:\FileExel.xls')
xlSheet = xlApp.WorkSheets('Лист1')
xlRange = xlSheet.UsedRange
For r=1 To xlRange.Rows.Count Do
For c=1 To xlRange.columns.Count Do
xlRange.Cells(r,c).Value
и т.д. в зависимости от поставленой задачи
RedPromo
Спасибо за ответ. Но...
Цитата:
На этой строке выдает ошибку (Object variable or With block variable not set (Error 91)).
В чем может быть причина? Не подключены какие-то библиотеки.
Цитата:
в этих строках тоже какая-то ошибка.
Если не трудно прогони код на компе, а то у тебя есть ошибки по тексту.
Цитата:
EXEL и ' вместо ".
Спасибо за ответ. Но...
Цитата:
xlSheet = xlApp.WorkSheets('Лист1')
На этой строке выдает ошибку (Object variable or With block variable not set (Error 91)).
В чем может быть причина? Не подключены какие-то библиотеки.
Цитата:
For r=1 To xlRange.Rows.Count Do
For c=1 To xlRange.columns.Count Do
в этих строках тоже какая-то ошибка.
Если не трудно прогони код на компе, а то у тебя есть ошибки по тексту.
Цитата:
Dim xlRange AS Exel.Range
EXEL и ' вместо ".
Archimed
Set xlSheet = xlApp.WorkSheets("Лист1")
Set xlRange = xlSheet.UsedRange
В For цикле Do не надо.
Set xlSheet = xlApp.WorkSheets("Лист1")
Set xlRange = xlSheet.UsedRange
В For цикле Do не надо.
Archimed
Да немного есть ошибок приношу извиннеия прост я писал с ходу
да иногда неуспеваеш переключится на с одного языка на другой
Да немного есть ошибок приношу извиннеия прост я писал с ходу
да иногда неуспеваеш переключится на с одного языка на другой
Господа, такой вопрос:
Все таблички в документе необходимо отформатить по одному образцу. Все бы хорошо, но надо, чтобы все ячейки в первой строке каждой таблицы форматировались по-горизонтали по-центру. На следующий код получаю ошибку, что таблица содержит объединенные ячейки, поэтому опреация невозможна. Но, обьединенные ячейки находятся не в первой строке, в некоторых таблицах таких вообще нет. Как обойти эти грабли? Кроме того, если делать это "ручками" в Excel никакие объединения не мешают форматить ячейки как угодно.
Вот код:
Sub TableEdit ()
Dim oTable As Table
For Each oTable in ActiveDocument.Tables
oTable.Rows(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next oTable
End Sub
Все таблички в документе необходимо отформатить по одному образцу. Все бы хорошо, но надо, чтобы все ячейки в первой строке каждой таблицы форматировались по-горизонтали по-центру. На следующий код получаю ошибку, что таблица содержит объединенные ячейки, поэтому опреация невозможна. Но, обьединенные ячейки находятся не в первой строке, в некоторых таблицах таких вообще нет. Как обойти эти грабли? Кроме того, если делать это "ручками" в Excel никакие объединения не мешают форматить ячейки как угодно.
Вот код:
Sub TableEdit ()
Dim oTable As Table
For Each oTable in ActiveDocument.Tables
oTable.Rows(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next oTable
End Sub
Что-то не работает эта ветка форума...
Разобрался сам. Если кого интересует - пишите - отвечу. Но суть в том, что ряды в Ворде не поддерживают свойство .ParagraphFormat.Alignment. Зато поддерживают ячейки. Через них я это и сделал: отформатил все ячейки с идексом 1.
For Each oTable in ActiveDocument.Tables
For I=1 To 3 'у меня по 3 колонки в таблицах
oTable.Columns(I).Cells(1).ParagraphFormat.Alignment = wdAlignParagraphCenter
Next I
Next oTable
Пишу по памяти, мож. где ошибка, но принцип такой.
Разобрался сам. Если кого интересует - пишите - отвечу. Но суть в том, что ряды в Ворде не поддерживают свойство .ParagraphFormat.Alignment. Зато поддерживают ячейки. Через них я это и сделал: отформатил все ячейки с идексом 1.
For Each oTable in ActiveDocument.Tables
For I=1 To 3 'у меня по 3 колонки в таблицах
oTable.Columns(I).Cells(1).ParagraphFormat.Alignment = wdAlignParagraphCenter
Next I
Next oTable
Пишу по памяти, мож. где ошибка, но принцип такой.
Привет всем,
Как я понял, эта ветка не слишком активна, мягко говоря, но может кто-то идейку подкинет...
Такая проблема. Есть код:
Sub Test()
Dim myTable As Table
Dim oCell As Cell
Dim myRange As Range
Set myTable = ActiveDocument.Tables(1)
Set myRange = ActiveDocument.Range( _
myTable.Cell(3, 1).Range.Start, _
myTable.Cell(4, 1).Range.End)
myRange.Cells.Merge
End Sub
Выдает ошибку:5941:"Запрашиваемый номер семейства не существует."
Если объединять ячейки из любого другого столбца, кроме 1-го, все выполняется без проблем. Но, мне необходимо объеденить несколько ячеек именно в первом столбце таблицы.
Буду благодарен, если кто-то подскажет решение проблемы, или хотя бы ресурс, где об этом можно поподробнее узнать (можно на английском или немецком). Мелкомягкие именно эту проблему в справке по ошибке с таким кодом не описывают.
Как я понял, эта ветка не слишком активна, мягко говоря, но может кто-то идейку подкинет...
Такая проблема. Есть код:
Sub Test()
Dim myTable As Table
Dim oCell As Cell
Dim myRange As Range
Set myTable = ActiveDocument.Tables(1)
Set myRange = ActiveDocument.Range( _
myTable.Cell(3, 1).Range.Start, _
myTable.Cell(4, 1).Range.End)
myRange.Cells.Merge
End Sub
Выдает ошибку:5941:"Запрашиваемый номер семейства не существует."
Если объединять ячейки из любого другого столбца, кроме 1-го, все выполняется без проблем. Но, мне необходимо объеденить несколько ячеек именно в первом столбце таблицы.
Буду благодарен, если кто-то подскажет решение проблемы, или хотя бы ресурс, где об этом можно поподробнее узнать (можно на английском или немецком). Мелкомягкие именно эту проблему в справке по ошибке с таким кодом не описывают.
mrdime
Можно так:
Код: ...
myRange.Select
Selection.Cells.Merge
Можно так:
Код: ...
myRange.Select
Selection.Cells.Merge
Yuk
Ух, Шайтан!
Большое спасибо, не ожидал, что так просто можно решить эту проблему.
Ух, Шайтан!
Большое спасибо, не ожидал, что так просто можно решить эту проблему.
Как заставить выполнятся макрос при открытии любого дока?
Страницы: 1234567891011121314151617181920212223242526
Предыдущая тема: Кластеризация изображений
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.