这似乎是一项相当容易的任务,但是由于我现在尝试了几种解决方案,所以没有任何效果......
我想要一些东西,假设我们有这张表:
单击随机单元格时,该文本的值/内容应显示在橙色框中。
这是第一个也是最重要的部分。
要做的第二件事是: 如果可能,应使用绿色背景突出显示/着色包含相同值的所有其他单元格(参见图像)
我试过了: 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/CELL-function-51bd39a5-f338-4dbe-a33f-955d67c2b2cf
提前谢谢。
编辑1: PS:最好是非VB解决方案。但是,如果VB解决方案全部存在,那么您的VB建议将受到高度赞赏
答案 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