Страницы: 1
RSS
Извлечение адреса выделенного диапазона
 
Добрый день!

Подскажите пож-та, есть такой код:
Код
'Извлечение адреса выделенного диапазона
Private Sub CommandButton52_Click()
Dim cell As Range
Dim address As String
    Set cell = Selection
    address = cell.address(External:=True)
    address = Right(address, Len(address) - InStr(1, address, "]"))
End Sub
1. Как мне скопировать полученный результат (адрес) в буфер обмена?
Я пробовал: address.Copy - не работает...

2. Если вставить address в ячейку кодом:
Код
    Range("O7").Select
    With Selection
       .FormulaR1C1 = address 'вывод адреса в ячейку
    End With
В 2007 офисе выводит без апострофа: Лист1!$I$24:$I$30 - всё ок!
А в более поздних версиях (2003) с апострофом( ' ): Лист1'!$I$15:$I$21 - в результате чего ссылка не рабочая.
Можно это поправить в коде?

Благодарю!
 
http://excelvba.ru/code/clipboard
Согласие есть продукт при полном непротивлении сторон
 
Вообще, Вы фигню какую-то придумали. Зачем при получении адреса ставить External:=True, если потом все равно надо отсечь ссылку на родителя?
По сути вообще правильно так делать тогда, если нужно имя листа и адрес:
Код
Private Sub CommandButton52_Click()
Dim cell As Range
Dim address As String
    Set cell = Selection
    address = "'" & cell.Parent.Name & "'!" & cell.address
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, согласен, так гораздо лучше...
Примного благодарен!
Sanja, мерси!
Готовый код:
Код
'Извлечение адреса выделенного диапазона
Sub Click()
Dim cell As Range
Dim address As String
    Set cell = Selection
    address = "'" & cell.Parent.Name & "'!" & cell.address
    'запись в буфер обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText address$
        .PutInClipboard
    End With
End Sub
Изменено: Владимир Самара - 21.02.2017 10:55:00
Страницы: 1
Наверх