我有两个电子表格。第一个电子表格包含数字表。第二个电子表格包含格式化的文本单元格。当用户单击第一个电子表格中的单元格时,我想显示第二个电子表格中的一系列格式化单元格。
似乎 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 用于向用户发送文本消息。