6.8-问题交互¶
选中某个图形后,使用快捷键,ctrl+m,则弹出一个窗口,显示问题的详细信息。基本逻辑是获取选择所选图形的内部变量名称,再去数据库中遍历查找,然后显示出来。
代码如下
Sub showInfo()
selectedShape = Selection.Name
Set sht = ThisWorkbook.Worksheets("问题管理")
' 获取行数
maxRow = sht.Cells(Rows.Count, "Q").End(xlUp).Row
questionType = ""
uniqueId = ""
questionType = ""
problemStatus = ""
For i = 3 To maxRow Step 1
shapeName = sht.Cells(i, "Q").Value
If shapeName = selectedShape Then
uniqueId = sht.Cells(i, "J").Value
questionType = sht.Cells(i, "K").Value
problemStatus = sht.Cells(i, "L").Value
rowNum = i
Exit For
End If
Next i
If uniqueId <> "" Then
info = "已选择图形信息如下:id号," & uniqueId & ";问题种类," & questionType & _
";问题状态," & problemStatus & Chr(10) & Chr(13) & "问题所在行:" & rowNum
Else
info = "未识别出所选图形,请检查是否选中图形。若检查选择无误,请联系开发者"
End If
MsgBox info
End Sub
这里就出现了一个问题,选中一个图形后,如果通过点击按钮去触发上面的过程,那么当前选择的图形就变成了点击的按钮了。为了解决这个问题,设置了一个快捷键,触发上面的过程。具体操作是,先选中图像,然后按下快捷键。在Thisworkbook中定义以下事件
Private Sub Workbook_Open()
Call showAllProblem
'创建快捷键
Application.OnKey "^m", "F_问题交互.showInfo"
End Sub
