excel如何用vba实现当鼠标单击单元格时,自动将该单元格的内容复制到剪切板

强调:不是复制单元格,是复制单元格的内容。PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)Target.Co... 强调:不是复制单元格,是复制单元格的内容。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Copy
End Sub
像这样的只能复制单元格,无法单纯复制单元格的内容,不符合需要。
这个问题我百度了一晚上,发现从2005年起就有人在问,一直没有答案,请大侠出手!
(只有20分了,还请高手不吝赐教。)
展开
 我来答
摩羯糖芯
推荐于2016-08-15 · TA获得超过6272个赞
知道大有可为答主
回答量:4898
采纳率:31%
帮助的人:468万
展开全部

 用VBA写代码即可实现。


详细步骤如下:

1.Alt+F11,打开VBA编辑界面,双击左侧Microsoft Excel对象下的“Sheet1”,确保程序是在sheet1中执行

2.点击下图“通用”右侧的下拉箭头,选择worksheet

3.此时,代码编辑区,自动出现两串代码,如下图所示:

4.补充写上一句代码“Range("h1")=Target.text"

5.关闭VBA界面,返回Sheet1,点击任意单元格,就看到H1的值就等于点击单元格的值

georgetalent
推荐于2016-07-08 · 知道合伙人旅游行家
georgetalent
知道合伙人旅游行家
采纳数:242 获赞数:1046
毕业于北京装甲兵工程学院计算机系指挥自动化专业,现任沈阳市旅游局区域合作处职员

向TA提问 私信TA
展开全部
如果单纯是文本很容易呀。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As String

a = Target.text
SetText a

End Sub
如果有图片就麻烦了。
追问
就是纯文本的,感觉你的方向对了,但是调试时提示“编译错误:子过程或函数未定义”
因为对vba不熟,还请再麻烦处理下。
追答

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim a As String

Dim Clip As Object

a = Target.Text

if a<>"" then

Set Clip = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

    With Clip

        .SetText a '变量

        .PutInClipboard

    End With

Set Clip = Nothing

end if

End Sub

放入sheet1中。

我调试了一下,缺少的是一个剪切板的对象。编辑一个剪切板的对象clip,然后就可以了。

你可以试一下。不过这段代码有点缺点。就是无法判断你要复制的内容,只要是SHEET1中,点击哪个非空单元格就复制哪个。无法判断你要复制的内容。你也可以在复制内容中加入筛选的条件,一遍进行复制。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太极健1969
2013-08-26 · TA获得超过9033个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3617万
展开全部
用copy方法不会只复制内容,他包含了格式等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liucheng8
2013-08-26 · TA获得超过257个赞
知道小有建树答主
回答量:107
采纳率:50%
帮助的人:76.9万
展开全部
直接用target.value.copy 不行吗
追问
提示“运行时错误‘424’ 要求对象”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式