[英]Floating Message/Comment Box
因此,我幾乎要做的就是在電子表格的右側創建一個浮動文本框。 當用戶選擇行/單元格時,它將在其中放置帶有有關該單元格詳細信息的注釋或消息,而不是一個小的小注釋框。
我試圖使用UserForm Box,但它並不是我真正想要的。
例:
用戶選擇單元格A4,當選擇該單元格時,我希望顯示一條以浮動文本形式顯示的消息。 然后,如果用戶選擇單元格B6,則該框中將顯示另一條消息。
這有意義嗎?
更新:
當選定某個單元格時,以下代碼顯示一個“用戶窗體”框:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Definition As String
If Intersect(Target, Range("C6:D6")) Is Nothing Then Exit Sub
Select Case Target.Row
Case 22
Definition = "Text Here"
Case 23
Definition = "Text Here Again"
End Select
UserForm1.Label1.Caption = Definition
UserForm1.Show
End Sub
我不想使用UserForm框,因為它在工作表本身上不是固定的。 我希望它是一個始終顯示在工作表右側的文本框,以在選擇單元格時顯示設置的消息或上下文。 這將與實際單元格中存儲的內容不同。
使用數據驗證消息。 每當您單擊一個單元格時,這種消息就會“彈出”:
您可以將Label或TextBox控件直接放置在工作表中-確保它是ActiveX控件,而不是Forms控件-並使用工作表的SelectionChange事件將其動態放置:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Me.lblText
.Visible = False
Select Case Target.Row Case 22 .Caption = "Text Here Again" Case 23 .Caption = "Text Here Again" Case Else .Visible = False Exit Sub End Select
' Place the label to the right of the target cell .Left = Target.Left + Target.Width
' Or place the label in the far left of the window '.Left; =; Application.ActiveWindow.VisibleRange.Width; -; .Width
.Top = Target.Top - 0.75 ' cell borders
.Visible = True
End With
End Sub
一些提示:
我強烈建議您將控件的背景色設置為&H80000004&,這是菜單和表單背景的預定義Windows方案顏色; 同樣,菜單文本顏色&H80000008&的前景。 這樣可以確保具有自己的顏色設置的用戶的可見度,並明確支持指定可訪問或輔助的配色方案以改善視覺障礙的用戶。
我的代碼取決於您的工作表支持VBA中的事件過程以及ActiveX控件。 它無法在.xlsx工作表中使用,並且如果您的操作環境具有嚴格的安全策略,則可能會被阻止(或伴隨警告對話框)。
復制和粘貼可能會受到我對工作表SelectionChange事件的使用的影響。
Me.lblText.Visible = False
您可能會從所有這些中得出一個顯而易見的結論:本機注釋或數據驗證標簽比使用表單和ActiveX控件更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.