2012-06-24 3 views
0

Я новичок в excel макросах. Я хочу скопировать выбранный диапазон на плату клипа.excel vba получить диапазон пользовательского диапазона выбора с помощью мыши и скопировать его в буфер обмена

Ниже приведена ссылка, где присутствует половина решения, она дает выход в всплывающем окне msg.

Excel VBA get range of user selected range by mouse

его как

Sub macro1() 
    MsgBox Selection.Address(ReferenceStyle:=xlA1, _ 
          RowAbsolute:=False, ColumnAbsolute:=False) 
End Sub 

Но если я хочу, чтобы избежать всплывающих окон и непосредственно скопирует результат clipboad ????

пример: если я выбрал ячейки от B15 до E40 и ячейки F23, он дает сообщение msg как «B15: E40, F23», и я хочу скопировать этот msg, а не содержимое ячейки этих выбранных ячеек.

ответ

2

Простой Selection.Copy будет поместить выбранный диапазон в буфер :)

Followup

Чтобы скопировать сотовый адрес выбранного диапазона сделать это.

'~~> Set a reference to Microsoft Forms Object Library 
Sub Sample() 
    Dim strAddr As String 
    Dim MyDataObj As New DataObject 

    strAddr = Selection.Address 

    '~~> This will put the address string in the Clipboard. To test this 
    '~~> After you run this macro, press CTL - V in Notepad.  
    MyDataObj.SetText strAddr   
    MyDataObj.PutInClipboard 
End Sub 

MORE Followup

i want to replace commas with forward slash????

Как уже упоминалось в моем комментарии, заменить запятую с Slash.

strAddr = Selection.Address 
strAddr = Replace(strAddr, ",", "/") 
+0

Неверно !! Он копирует содержимое ячейки, а не диапазон вывода! пример: если я выбрал ячейки от B15 до E40 и ячейки F23, он дает msg как «B15: E40, F23», и я хочу скопировать этот msg, а не содержимое ячейки этих выбранных ячеек. – namit

+3

'Неправильно !! Он копирует содержимое ячейки, а не выходной диапазон! 'Relax :) Нет необходимости перескакивать ваши пушки;) Я обновил вышеуказанный пост ... –

+0

его выдает сообщение об ошибке msg as: Ошибка компиляции: User- определенный тип не определен " – namit

Смежные вопросы