2013-03-08 91 views
0

我在Excel 2007中的我的用戶表單中有一個小問題。我的工作表中的某些單元格包含1個單元格中的多於10行(帶有ALT ENTER的數據)。現在..即時通訊試圖找到一種方便,清潔的數據顯示。我不想將列寬更改爲1000,但我想用鼠標懸停在工具箱上顯示所有單元格數據。任何經驗豐富的人呢?或者也許是另一個想法Listbox Userform VBA對單元格中的太多數據

在此先感謝!

+0

你們是不是要顯示中的紙片或表單中的數據?我不明白你的問題。如果你的表單/列表框不重要,你只是想通過某種方式看到表單中的所有行,那就說出來。否則你能否詳細說明一下。 – NickSlash 2013-03-08 16:19:41

+0

我的表單視圖並不重要,我的表單很重要。我希望它在我的表單上的列表框中顯示乾淨。最好使用鼠標和一個小工具箱。但我找不到任何曾經或嘗試過這種方法的人。 – user2119093 2013-03-08 18:17:22

+0

具有多行的單元格,單元格中的每一行代表列表中的一個項目?或者是否將整個單元格值放入單個列表項中。你可以提供一些截圖嗎? (用鏈接更新你的問題) – NickSlash 2013-03-08 18:27:40

回答

0

用鼠標將可能做到這一點,但它很複雜,我認爲。在這裏,我有另一個更簡單的想法:在列表框中雙擊一個多行文本框與選定列表項數據將顯示。該文本框與列表框具有相同的位置和大小。在用戶表單上單擊文本框隱藏。下面的示例代碼,以測試它,你需要有一個名爲「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 

enter image description here

+0

嘿,謝謝你的主意! – user2119093 2013-03-11 09:02:29

+0

不客氣。如果你喜歡這個答案,請注意。我會很高興得到一些觀點:-)。 – dee 2013-03-11 14:01:10

相關問題