0

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

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

Excel VBA通​​过鼠标获取用户选择范围的范围

就像是

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

但是如果我想逃避弹出窗口并直接将结果复制到剪贴板????

示例:如果我选择了从 B15 到 E40 和 F23 单元格的单元格,它会将消息显示为“B15:E40,F23”,并且我想复制此消息,而不是这些选定单元格的单元格内容。

4

1 回答 1

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, ",", "/")
于 2012-06-24T12:36:10.513 回答