excel - 将活动单元格的行号复制到剪贴板(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
解决方案
你可以看看这个答案。由于使用了后期绑定,因此您无需添加引用。
您的代码看起来像(私有子是从我上面链接的答案中复制的):
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
推荐阅读
- java - 在 PageFactory (Selenium+Java) 中获取 NPE NullPointerException
- typescript - Typescript - 如何禁止两个解析为相同类型的类型别名互换使用?
- javascript - Javascript动画倒计时
- cplex - 如何设置使用完整版 CPLEX 的密钥?
- django - Django 中的 def __str__(self) 中的条件
- python-3.x - 如果关联 ID 的一部分匹配,则来自多行的平均值
- ddl - Snowflake SQL 编译错误:无法将列从类型 TIMESTAMP_LTZ(9) 更改为 TIMESTAMP_NTZ(9)
- c# - TPL Dataflow C# 等待所有链接块完成
- dialogflow-es - Dialogflow Messenger V1 未呈现丰富的响应消息
- kotlin - Kotlin:表达“`String?` contains `String`”的最佳方式