0

我在 Excel 2007 的用户窗体中有一个列表框。

我的工作表中的某些单元格包含超过 10 行(带有 ALT ENTER 的数据)。

我正在尝试清理和显示数据。我不想将列宽更改为 1000,但我想使用鼠标悬停框来显示所有单元格数据。

还有其他可行的想法吗?

4

1 回答 1

1

用鼠标悬停是可能的,但我认为这很复杂。这里我有另一个更简单的想法:在列表框中双击时,将显示一个带有选定列表项数据的多行文本框。此文本框与列表框具有相同的位置和大小。在用户表单上单击文本框隐藏。这是一些示例代码,要对其进行测试,您需要带有名为“ListBox1”的列表框的表单:

Option Explicit

Public ListItemInfo As Control

Private Sub UserForm_Initialize()
    Set ListItemInfo = Me.Controls.Add("Forms.TextBox.1", "ListItemInfo", False)
    With Me.ListItemInfo
        .Top = Me.ListBox1.Top
        .Left = Me.ListBox1.Left
        .Width = Me.ListBox1.Width
        .Height = Me.ListBox1.Height
        .MultiLine = True
    End With
End Sub

Private Sub ListBox1_Change()
    Me.ListItemInfo.text = GetSelectedItemsText
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    SwitchListItemInfo
End Sub

Private Sub UserForm_Click()
    SwitchListItemInfo
End Sub

Private Function GetSelectedItemsText() As String
    Dim text As String
    Dim i As Integer
    For i = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(i) Then
            text = text & Me.ListBox1.List(i) & vbNewLine
        End If
    Next i
    GetSelectedItemsText = text
End Function

Private Sub SwitchListItemInfo()
    If Me.ListItemInfo.text = "" Then Exit Sub
    Me.ListItemInfo.Visible = Not Me.ListItemInfo.Visible
    Me.ListBox1.Visible = Not Me.ListBox1.Visible
End Sub

在此处输入图像描述

于 2013-03-08T19:01:39.970 回答