Нужно вставить в текст ссылки на авторство. типа www.excelworld.ru в случайных местах, например 2-3 на страницу (или в % соотношении без разницы)? Ну или подскажите как просто текст в случайных местах вставить с опеределенным интервалом.возможен такой макрос? спасибо!
Нужно вставить в текст ссылки на авторство. типа www.excelworld.ru в случайных местах, например 2-3 на страницу (или в % соотношении без разницы)? Ну или подскажите как просто текст в случайных местах вставить с опеределенным интервалом.возможен такой макрос? спасибо!Badass
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = "CopyRight" Dim i As Long, insCount As Long Dim insRange As Word.Range, curWord As Long insCount = CLng(ActiveDocument.Words.Count / afterWords) For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) ActiveDocument.Hyperlinks.Add Anchor:=insRange, Address:=Address, textToDisplay:=textToDisplay Next End Sub
[/vba]
Можно так [vba]
Код
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = "CopyRight" Dim i As Long, insCount As Long Dim insRange As Word.Range, curWord As Long insCount = CLng(ActiveDocument.Words.Count / afterWords) For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) ActiveDocument.Hyperlinks.Add Anchor:=insRange, Address:=Address, textToDisplay:=textToDisplay Next End Sub
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = " CopyRight " Dim i As Long, insCount As Long Dim insRange As Word.Range, curWord As Long insCount = CLng(ActiveDocument.Words.Count / afterWords) For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) insRange.Text = insRange.Text & textToDisplay Next End Sub
[/vba]
Можно и просто текст [vba]
Код
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = " CopyRight " Dim i As Long, insCount As Long Dim insRange As Word.Range, curWord As Long insCount = CLng(ActiveDocument.Words.Count / afterWords) For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) insRange.Text = insRange.Text & textToDisplay Next End Sub
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = " CopyRight" Dim i As Long, insCount As Long, addedText As String Dim insRange As Word.Range, curWord As Long insCount = CLng(ActiveDocument.Words.Count / afterWords) addedText = textToDisplay & ChrW(&H394) & " " For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) insRange.Text = insRange.Text & addedText Next End Sub
[/vba]
Приведите пример требуемого символа, а так [vba]
Код
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = " CopyRight" Dim i As Long, insCount As Long, addedText As String Dim insRange As Word.Range, curWord As Long insCount = CLng(ActiveDocument.Words.Count / afterWords) addedText = textToDisplay & ChrW(&H394) & " " For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) insRange.Text = insRange.Text & addedText Next End Sub
Можно и так, сделал для случая, если слово больше 4 символов [vba]
Код
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = " CopyRight" Dim i As Long, insCount As Long, addedText As String Dim insRange As Word.Range, curWord As Long, curText As String insCount = CLng(ActiveDocument.Words.Count / afterWords) addedText = textToDisplay & ChrW(&H394) & " " For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) curText = insRange.Text If Len(curText) > 4 Then insCount = Len(curText) \ 2 insRange.Text = Mid$(curText, 1, insCount) & addedText & Mid$(curText, insCount + 1) Else insRange.Text = curText & addedText End If Next End Sub
[/vba]
Можно и так, сделал для случая, если слово больше 4 символов [vba]
Код
Public Sub InsertHyper() Const afterWords As Long = 20 Const Address As String = "http://www.excelworld.ru/forum/4" Const textToDisplay As String = " CopyRight" Dim i As Long, insCount As Long, addedText As String Dim insRange As Word.Range, curWord As Long, curText As String insCount = CLng(ActiveDocument.Words.Count / afterWords) addedText = textToDisplay & ChrW(&H394) & " " For i = 1 To insCount curWord = i * afterWords + 1 If curWord > ActiveDocument.Words.Count Then curWord = ActiveDocument.Words.Count Set insRange = ActiveDocument.Words(curWord) curText = insRange.Text If Len(curText) > 4 Then insCount = Len(curText) \ 2 insRange.Text = Mid$(curText, 1, insCount) & addedText & Mid$(curText, insCount + 1) Else insRange.Text = curText & addedText End If Next End Sub
просто понимаете, если есть "длинное" слово (пропущен пробел(ы)), то выпадает ошибка, он не может пропустить такое слово. можно как то убрать проверку или изменить, чтобы он вставлял например после определенного числа символов? спасибо
просто понимаете, если есть "длинное" слово (пропущен пробел(ы)), то выпадает ошибка, он не может пропустить такое слово. можно как то убрать проверку или изменить, чтобы он вставлял например после определенного числа символов? спасибоBadass
в общем проблемма в том, что если я ставлю например через 20 слов, и попадается слово больше 20 символов (до него копирайты расставляются), то появляется ошибка:
в общем проблемма в том, что если я ставлю например через 20 слов, и попадается слово больше 20 символов (до него копирайты расставляются), то появляется ошибка: Badass