EXCEL女士:将Clicked / Active Cell的内容复制到另一个Cell

时间:2017-01-01 16:22:55

标签: excel click cell

这似乎是一项相当容易的任务,但是由于我现在尝试了几种解决方案,所以没有任何效果......

我想要一些东西,假设我们有这张表:

enter image description here

单击随机单元格时,该文本的值/内容应显示在橙色框中。

  

这是第一个也是最重要的部分。

要做的第二件事是: 如果可能,应使用绿色背景突出显示/着色包含相同值的所有其他单元格(参见图像)

enter image description here

我试过了: https://www.ablebits.com/office-addins-blog/2015/02/10/excel-indirect-function/

http://www.contextures.com/xlFunctions05.html

https://support.office.com/en-us/article/Hide-or-display-cell-values-c94b3493-7762-4a53-8461-fb5cd9f05c33

https://support.office.com/en-us/article/CELL-function-51bd39a5-f338-4dbe-a33f-955d67c2b2cf

提前谢谢。

  

编辑1: PS:最好是非VB解决方案。但是,如果VB解决方案全部存在,那么您的VB建议将受到高度赞赏

2 个答案:

答案 0 :(得分:3)

大部分问题已经解答here所以只需要编辑一下

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
     'Put in your actual range and the cell where you the text to be shown
        If Not Intersect(Target, Range("B5:D17")) Is Nothing Then
            Selection.Copy Destination:=Range("E2")
        End If
    End If
End Sub

并且可以使用条件格式设置规则

来完成着色
=B5=$E$2

假设值在B5中开始,并且要显示的文本在E2中。

如果您只想将值而不是格式复制到E2,请替换

Selection.Copy Destination:=Range("E2")

Range("E2").Value = Selection.Value

答案 1 :(得分:0)

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Task1: Show your active cell contents in cell E2
    actval = ActiveCell.Value
    actaddr = ActiveCell.Address
    Range("E2") = actval

    'Task2: Turn all cells green, matching with active cell value, except host cell

    'first set entire background white
    Range("B5:F18").Interior.Color = vbWhite

    'second set all matching cells green
    For Each c In Range("B5:F18")
    If c.Address <> actaddr Then
    If c = actval Then
    Range(c.Address).Interior.Color = vbGreen
    End If
    End If
    Next c
    End Sub