excel vba通过鼠标获取用户选择范围的范围并将其复制到剪贴板

时间:2012-06-24 12:14:50

标签: excel excel-vba vba

我是excel宏的新手。我想将所选范围复制到剪贴板。

下面是存在half解决方案的链接,它在弹出消息框中提供输出。

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,而不是这些选定单元格的单元格内容。 / p>

1 个答案:

答案 0 :(得分:3)

简单的Selection.Copy会将所选范围放入剪贴板:)

<强>后续

要复制所选范围的单元格地址,请执行此操作。

'~~> 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

更多关注

  

我想用正斜杠替换逗号????

如我的评论中所述,请用斜杠替换逗号。

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