EXCEL表格 如何使某表格李的的批注显示另外几个表格的数据

就像图里这样

上图某表格的批注中
显示另外6个制定表格的数据
并且 会随着那6个表格数据变化而变化

       å› ä¸ºä¸çŸ¥é“你要显示批注的具体单元格和那6个数据的具体单元格,所以我在此假设要在A1显示批注,批注来源是A10:B12,请你根据自己的具体情况适当更改。步骤如下:

ALT+F11,输入如下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strcomment As String
    strcomment = Range("A10").Text & ":" & Range("B10").Text & Chr(13) & Chr(10) & Range("A11").Text & ":" & Range("B11").Text & Chr(13) & Chr(10) & Range("A12").Text & ":" & Range("B12").Text
    If Range("A1").Comment Is Nothing Then
        Range("A1").AddComment
        Range("A1").Comment.Visible = True
        Range("A1").Comment.Text Text:=strcomment
    Else
        Range("A1").Comment.Visible = True
        Range("A1").Comment.Text Text:=strcomment
    End If
End Sub

如下图所示:

 

追问

非常感谢这位大大
大大请受吾辈一拜
明天去公司试试

另外 补充一句

图一里的每一格的批注 都需要显示另外一个工作表中6个表格数据
1个月按31天算 每天又5个小格 每个格需要表达3个单位和数据
大哥 您这方法 我是需要为每个格都写一份代码么?
那样吾辈的工作量好大....头好疼

追答

不用写重复代码,用循环语句

追问

能解释一下 或者给个例子么
谢谢大大

追答

我上面的回答中那个图片不是例子吗?你照着做不成功吗?

追问

非常感谢大大
成功了1个
但是 其他 表格 不行
而且成功的哪个 批注会一直保持显示状态
吾辈希望的是可以鼠标放上去才显示

追答

我还以为你要一直显示,你将代码改成如下就可以了。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strcomment As String
    strcomment = Range("A10").Text & ":" & Range("B10").Text & Chr(13) & Chr(10) & Range("A11").Text & ":" & Range("B11").Text & Chr(13) & Chr(10) & Range("A12").Text & ":" & Range("B12").Text
    If Range("A1").Comment Is Nothing Then
        Range("A1").AddComment
        Range("A1").Comment.Text Text:=strcomment
    Else
        Range("A1").Comment.Text Text:=strcomment
    End If
End Sub

注意,我以上的代码只针对一个单元格显示批注,如果要显示多个的话,我等一下给个例子。

追问

嗯 好的 谢谢大大
吾辈是要针对大约1800+的个单元格的
也就是1年12个月365日 每日5个表格 如果要一个一个写入
吾辈真心会哭的

追答

以下代码是针对A1到A5,对应批注源为A10到J12,请参考,希望你能找出其中的规律,举一而反三,从五个单元格扩展到365*5个单元格,如果有疑问,请继续提问。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i, j As Integer
    For i = 1 To 5
        If Range("A" & i).Comment Is Nothing Then
            Range("A" & i).AddComment
            Range("A" & i).Comment.Text Text:=Cells(10, 2 * i - 1) & ":" & Cells(10, 2 * i).Text & Chr(13) & Chr(10) & Cells(11, 2 * i - 1) & ":" & Cells(11, 2 * i) & Chr(13) & Chr(10) & Cells(12, 2 * i - 1) & ":" & Cells(12, 2 * i)
        Else
            Range("A" & i).Comment.Text Text:=Cells(10, 2 * i - 1) & ":" & Cells(10, 2 * i).Text & Chr(13) & Chr(10) & Cells(11, 2 * i - 1) & ":" & Cells(11, 2 * i) & Chr(13) & Chr(10) & Cells(12, 2 * i - 1) & ":" & Cells(12, 2 * i)
        End If
    Next i
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-29
这个复杂啊。必须用VBA,怎么做得找高人
第2个回答  2014-09-29
VBA可以。
相似回答