[英]Copy row number of active cell to clipboard (Excel VBA)
我想創建一個宏,它獲取活動單元格的行號並將其復制到剪貼板。
當我執行以下代碼時,我收到“編譯錯誤:無效的限定符”。
我已經忘記了我的大部分 VBA,但是這么簡單的東西肯定可以工作嗎? 在此先感謝您提供的任何幫助。
Sub macro3()
Dim x As Integer
x = ActiveCell.row
x.Copy
End Sub
編輯:使用下面的解決方案,我將其更改為以下內容(有效):
在 VBE 中的“工具”>“引用”下首先添加對 Microsoft Forms 2.0 對象庫的引用后:
Sub macro3()
Dim x As DataObject
Set x = New DataObject
x.settext ActiveCell.row
x.putinclipboard
End Sub
一種選擇,使用DataObject
- 在 VBE 中的工具>引用下添加對Microsoft Forms 2.0 Object Library
引用。
Sub Test()
Dim x As DataObject
Set x = New DataObject
x.SetText ActiveCell.Row 'Or CStr(ActiveCell.Row) to make the type conversion explicit
x.PutInClipboard
End Sub
你可能看看這個答案。 由於使用了后期綁定,因此您無需添加引用。
你的代碼看起來像(私有子是從我上面鏈接的答案中復制的):
Sub RowNumberToClipboard()
Dim lRow As Long
lRow = ActiveCell.Row
Call CopyText (CStr(lRow))
End Sub
Private Sub CopyText(Text As String)
'VBA Macro using late binding to copy text to clipboard.
'By Justin Kay, 8/15/2014
Dim MSForms_DataObject As Object
Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
MSForms_DataObject.SetText Text
MSForms_DataObject.PutInClipboard
Set MSForms_DataObject = Nothing
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.