Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4934|回复: 14

[已解决]如何用VBA实现用"control C"复制命令,然后人工黏贴到自己所想的单元格内?

[复制链接]
发表于 2015-1-20 20:51 | 显示全部楼层 |阅读模式
本帖最后由 markang 于 2015-1-20 20:59 编辑

如附件是一系列单元格,是否可以通过VBA实现,操作员依次选定若干单元格然后按“control C”做复制命令,然后人工在所想单元格黏贴选定的内容并以连续的形式显示在此单元格,且中间用“,”隔开?

附件的A15单元格是代表“选定的单元格”,B17单元格是想达到的效果。

这恐怕是我问到现在的最难的题目了,有无老师可以指导? 如何实现用ctrl键多选,然后手动黏贴到所需的单元格.rar (6.49 KB, 下载次数: 3)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-1-20 21:55 | 显示全部楼层
本帖最后由 JLxiangwei 于 2015-1-20 21:57 编辑

Function test(rng As Range)
    Dim r As Range
    Dim str As String
    For Each r In rng
        str = str & "," & r.Value
    Next
    test = Mid(str, 2, 999)
End Function

如何实现用ctrl键多选,然后手动黏贴到所需的单元格.rar (12.41 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2015-1-20 22:18 | 显示全部楼层
谢谢回复,我应该没交代清楚,我想要的效果是:

1.随机用鼠标按着"ctrl"选择多个单元格
2.按下“ctrl+C"
3,在指定单元格上使用黏贴命令,然后出来XXX,XXX,XXX的格式效果

我觉得真难!
回复

使用道具 举报

发表于 2015-1-22 20:12 | 显示全部楼层
本帖最后由 爱疯 于 2015-1-22 21:23 编辑

EWF3F.gif

3楼的意思是这样吗?
如果是,3楼的第1步和第2步,会得到这个动画里的提示。你还是再说明一下你要实现的效果吧。
回复

使用道具 举报

 楼主| 发表于 2015-1-25 09:14 | 显示全部楼层
爱疯你好!是的我要的就是你所说的,不过现在想想这可能是实现不了的,因为在"control C“的时候系统肯定会有这个提示的。其实我的目的是能快速的完成 if instr(XXX,XXX, range("XX")) 语句。因为我现在处理的文档是"对不同机型的不同参数做描述”只能用这个语句才最有效。
或者有没有可能,我在需要的单元格里加入底色,“然后告诉vba什么样的颜色其对应的单元格自动输出某个值?”如附件在A14里如果输入的值是“后台数据中”标红的,那么在A18单元格自动输出“1”,依次类推? 通过颜色判断输入数值.rar (9.41 KB, 下载次数: 3)
回复

使用道具 举报

发表于 2015-1-25 12:24 | 显示全部楼层
QQ截图20150125122047.jpg

看不明白这是想做什么。。。。
回复

使用道具 举报

 楼主| 发表于 2015-1-26 15:14 | 显示全部楼层
要达到的效果就是在A1单元格输入从A1到F11中的数值,然后在A18中反馈某一直。
举例1:
A1=SAU025AC
则A18=风冷机
当然只要是和SAU025AC一样是黄色的内容,都在A18显示“风冷机”
举例2:
A1=SAO040AC
则A18=水冷机
回复

使用道具 举报

发表于 2015-1-26 22:20 | 显示全部楼层
要不给出少量的数据,并手动一一给出结果。

才好理解题意
回复

使用道具 举报

 楼主| 发表于 2015-1-27 09:55 | 显示全部楼层
我就用我造的语言来表达意思.....


Sub CommandButton21_Click()

   Dim A, i   定义A,I
   A = Sheets(1).Range("A1:F11")  A指代sheet1.("A1:F11")范围
   For Each i In A   对于A中的每一个I
   if range("A14")=I and I.interior.color=3 then 如果我在"A14"键入的值的背景颜色=3 那么
   Range("A15") = 康 在单元格A15=康
    else I.interior.color=4 then 否则当键入"A14"的值的背景颜色=4 那么
  range("A15")=王 在单元格A15=王
  End If
   Next

就是在A14单元格输入一数值,系统自动判断这个数值在("A1:F11")的颜色,然后根据背景颜色在A15单元格自动反馈所对应的数值。如果在A14输入的值,在("A1:F11")中对应的颜色为红色,则A15=2;如果在A14输入的值,在("A1:F11")中对应的颜色为黄色,则A15=3;。。。。。。
举例:我在A14中输入SAO013AC,因为他在("A1:F11")中的颜色为黄色,则A15=3,依次类推,谢谢了
回复

使用道具 举报

发表于 2015-1-27 10:40 | 显示全部楼层    本楼为最佳答案   
Private Sub CommandButton21_Click()
    Dim str, rng
    Sheets(1).Activate
    str = Range("A14")

    For Each rng In Range("A1:F11")
        If rng = str Then
            Select Case rng.Interior.ColorIndex
            Case 3 '红
                Range("A15") = "康"
            Case 4 '是这个绿吗?
                Range("A15") = "王"
            End Select
        End If
    Next
End Sub
通过颜色判断输入数值.rar (18.17 KB, 下载次数: 2)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 11:45 , Processed in 0.376961 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表