簡體   English   中英

將活動單元格的行號復制到剪貼板(Excel VBA)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM