我知道Application.CutCopyMode,但是只返回CutCopyMode的状态(False,xlCopy或xlCut)。
如何使用VBA在Excel中返回当前已复制范围的地址?我不需要当前的selected范围(即Application.Selection.Address)。我需要周围带有移动边界(行军蚁)的单元格范围的地址。
换句话说,如果您选择一个单元格范围,请按CTRL + C,然后将所选内容移到另一个单元格,我需要用户按CTRL + C时选择的单元格的地址。
谢谢!
据我所知,vba无法做到这一点。但是,您可以编写自己的copy子代码,并将源存储在全局变量中。
类似这样的东西:
Option Explicit
Dim myClipboard As Range
Public Sub toClipboard(Optional source As Range = Nothing)
If source Is Nothing Then Set source = Selection
source.Copy
Set myClipboard = source
End Sub
复制范围时,地址会与其他格式一起复制到剪贴板。您可以使用Clipboard Viewer应用程序进行检查。因此,如果您需要复制的范围,请从剪贴板获取它。它将类似于> $ A2:$ B5或类似的东西>
我能想到的唯一方法是使用全局变量跟踪最后选择的范围,然后等待直到您认为复制操作完成。不幸的是,这都不容易。