Цитата Pozia:
Хотелось бы еще попросить Вас подкорректировать скрипт из вашего поста 27, чтоб он имена не удалял у ранее названных клеток. »
|
Пробуйте (код для модуля рабочей книги):
читать дальше »
Код:
![Выделить весь код](images/misc/selectcode.png)
Option Explicit
Sub SetNames()
Dim objWorksheet As Worksheet
Dim objCell As Range
Dim strNewName As String
Dim i As Long
Set objWorksheet = Selection.Worksheet
If objWorksheet.Type = xlWorksheet Then
i = objWorksheet.Names.Count
For Each objCell In Selection
If Not RangeHasName(objCell) Then
Do
strNewName = "_" & CStr(i)
i = i + 1
If Not NameExists(objWorksheet, strNewName) Then
Exit Do
End If
Loop
objWorksheet.Names.Add strNewName, "=" & objCell.Address(, , xlR1C1, True)
End If
Next
End If
Set objWorksheet = Nothing
End Sub
Function NameExists(objWorksheet As Excel.Worksheet, strName As String) As Boolean
On Error Resume Next
NameExists = Len(objWorksheet.Names(strName).Name) <> 0
End Function
Function RangeHasName(objRange As Excel.Range) As Boolean
On Error Resume Next
RangeHasName = Len(objRange.Name.Name) <> 0
End Function
Цитата Pozia:
PS Не подскажете ли, как в ворд на скрипт задать горячую клавишу. »
|
Не подскажу, по той простой причине, что у Вас Office 2010, а у меня Office 2003. Но можете попробовать самостоятельно согласно статье:
Настройка сочетаний клавиш - Word - Office.com, выбрав в поле «Категории» категорию «Макросы», а в поле «Макросы» — Ваш макрос.
Цитата Pozia:
в ворд приходится хитрить - включать запись макроса, дам задавать сочетание клавиш, а потом под записанный макрос подсовывать свой. »
|
Сие излишне.