在 Excel 的弹出窗口中显示外部工作表的一部分

在 Excel 的弹出窗口中显示外部工作表的一部分

我有两个电子表格。第一个电子表格包含数字表。第二个电子表格包含格式化的文本单元格。当用户单击第一个电子表格中的单元格时,我想显示第二个电子表格中的一系列格式化单元格。

似乎 MsgBox 对此有太多限制。我该如何创建自定义弹出窗口?我知道要获取单元格范围的原始格式内容,我可以使用相机快速访问工具。通过这个,我可以创建一组包含第二张表中单元格范围的静态图像。但我希望用户在单击给定单元格时一次只能显示一张图片。我可以从单元格中选择一张图片显示在注释中吗?

答案1

此 VBA 代码(宏)将帮助您从目标表弹出相关数据。

在此处输入图片描述

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("A1:A9")) Is Nothing Then Exit Sub

Dim DataSheet As Range

Set DataSheet = Worksheets("Sheet2").Range("A17:F24")

Str1 = WorksheetFunction.VLookup(Target, DataSheet, 2, False)
Str2 = WorksheetFunction.VLookup(Target, DataSheet, 3, False)
Str3 = WorksheetFunction.VLookup(Target, DataSheet, 4, False)
Str4 = WorksheetFunction.VLookup(Target, DataSheet, 5, False)
Str5 = WorksheetFunction.VLookup(Target, DataSheet, 6, False)

MsgBox Str1 & vbCr & Str2 & vbCr & Str3 & vbCr & Str4 & vbCr & Str5, vbOKOnly, "Data to Display"

End Sub

怎么运行的:

  • 该代码背后的机制是VLOOKUP函数:
  • 只要您单击源工作表中的任意单元格Range (A1:A9),此代码就会搜索并显示来自目标工作表(工作表 2)的相应数据Range (A17:F24))

注意:

  • 在此代码表名称中,列位置引用(使用 Vlookup)是可编辑的。
  • 根据需要调整此代码中的单元格引用。

答案2

您必须用 VB 编写自己的对话框。
正如其名称所示,Msgbox 用于向用户发送文本消息。

相关内容