標題:
[發問]
(己解決!)~~有關以下2個不明白的問題.想請教各位指導一下小弟!
[打印本頁]
作者:
StanleyVic
時間:
2011-8-5 12:12
標題:
(己解決!)~~有關以下2個不明白的問題.想請教各位指導一下小弟!
本帖最後由 StanleyVic 於 2011-8-10 17:41 編輯
1. 如下圖: 小弟寫了一個小小的操作介面:
為什麼.每次我一login Userform , 當中的 MultiPage (演示中的第二頁) 不能正常Show出黎.
每次都是這樣.但用戶們按了其他頁面,再返回按"它" , "它" 又可以正常出現.
[attach]7286[/attach]
2. 如下圖 : 請問這個功能叫什麼? 想知用公式做還是VBA 寫?
小弟很想學,望各位能給予小弟一份樣板,指導一下..
(當用戶要輸入是, 就 Double Click 2次, 當中可以輸入文字,索引會自動顯示)
[attach]7287[/attach]
作者:
StanleyVic
時間:
2011-8-6 22:09
期望能得到各位的指導..謝謝~..
作者:
StanleyVic
時間:
2011-8-9 14:47
懇請大大們 / 各同學們的指導...
(貼子不能沉下去~~~ Y-Y" 求助.求助..各位)
作者:
GBKEE
時間:
2011-8-9 15:31
回復
3#
StanleyVic
Q1 :沒程式碼如何修正
Q2:你描述的不清楚
作者:
StanleyVic
時間:
2011-8-9 16:36
回復
4#
GBKEE
謝大大的提示:因為文件過大過30m,內容有很多出入數DATA.以及各項代碼.所以暫時不便上載.
[attach]7323[/attach]
問題1. 其實一切如圖中所顯示,我在該Userform1的 multipage共建立了5個Page.但我沒有對 MultiPage1_Change 做過任何東西, 所以應該不會出現圖中的情況,所以才以GIF 格式.演示.
為何當我一Login, page2 出現畫面不能刷身的情況, 我曾認為是可能自己在 Page 中建立了 ListView , 但我 page 4 都是用ListView,所以我提問題.
再者: 如果版主認為是在代碼上出現問題.....我...我回去試一下再把文件拆開,盡量把問題帶出來.再上載到貴網上..
問題2. 這個..這個我就頭痛了,我是在公司的財務系統中看到的, 我對這個功能很感興趣, 希望可以引入自己的VBA中. 無奈,我不才. 所以在此請教各位.
圖中的演示主要是,在Userform1. Textbox1中. 如用鼠標點2下. 就會變成好像 listbox 這樣. 當你在 textbox一邊打字, 下面的Listbox Item 就會像查找一樣跑出來. (我猜用了 like *..什麼的..)
表逹能力有限.. 如有不便處.請各同學,大大們見諒..
作者:
GBKEE
時間:
2011-8-9 17:11
本帖最後由 GBKEE 於 2011-8-9 19:10 編輯
回復
5#
StanleyVic
Q2: 試試看是這樣嗎?
Option Explicit
Dim Ar(), At
Private Sub ListBox1_Click()
TextBox1 = ListBox1.List(ListBox1.ListIndex)
End Sub
Private Sub TextBox1_Change()
At = Filter(Ar, TextBox1.Text, True)
If UBound(At) > -1 Then
ListBox1.List = At
Else
ListBox1.List = Ar
End If
End Sub
Private Sub UserForm_Initialize()
Ar = Application.WorksheetFunction.Transpose(Sheet1.Range("A:A").SpecialCells(xlCellTypeConstants))
'A欄是資料區(資料區須是連續範圍)
End Sub
複製代碼
作者:
StanleyVic
時間:
2011-8-10 11:34
本帖最後由 StanleyVic 於 2011-8-10 11:39 編輯
回復
6#
GBKEE
Q1: 果然給你提醒了,是我的代碼出了些問題! 雖然我沒對MultiPage1_Change做過什麼...但我的Userform_initialize 引用了With ListView1事件,可是....當我刪除後, 雖然沒再出現畫面刷新不了的情況.但無奈..出來的ListView結果有點怪.. ( 己把問題的VBA 帶出,生成附件: 煩請大大查閱及指導: [attach]7350[/attach]
代碼如下 :
Private Sub UserForm_Initialize()
With ListView1
.Gridlines = True
.View = lvwReport
.ColumnHeaders.Add , , "Searching Result ...", 180
End With
End Sub
Private Sub ToggleButton4_Click()
Dim DPC As Range
If Userform1.TextBox18.Text <> "" And ToggleButton4 = True Then
ListView1.ListItems.Clear
Userform1.ToggleButton5 = False
Userform1.ToggleButton6 = False
Userform1.ToggleButton7 = False
Sheets("Ref").Activate
For Each DPC In [J6:J3505]
If DPC Like "*" & TextBox18.Text & "*" Then
DPC.Offset(0, 2).Value = DPC.Offset(0, 0).Value
ListView1.ListItems.Add , , DPC.Value
End If
Next
Else
[L6:L3505] = ""
TextBox18.Value = ""
ListView1.ListItems.Clear
End If
End Sub
複製代碼
'------------------------------------
Q2: 跟據你的引領,我做了個樣版,請大大過目. 但還有些地方未能解決: [attach]7351[/attach]
Q2(A): 如果我在textbox1 中 輸入 01, 我在彈出來的Listbox1 中選取了A010, 表面來看,好像己經逹到了目的,但當我想再修正時,Backspace一格,再打1時, 因為我想修正為A011時, 就出現報錯的情況.
Q2(B): 請問在Textbox中. 隨了現在的TextBox1_Change 事件外( 不段查找相關之資料外) , 可否再加入TextBox1_DblClick 呢? (可以彈出Listbox Item ),因為我想做到我"1樓Q2圖中"的功能.
作者:
GBKEE
時間:
2011-8-10 14:52
回復
7#
StanleyVic
Q1: 改為如此試試看
Private Sub MultiPage1_Change()
If MultiPage1.Value = 1 Then
With ListView1
.Gridlines = True
.View = lvwReport
.ColumnHeaders.Add , , "Searching Result ...", 180
End With
End If
End Sub
複製代碼
Q2:
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value <> "" Then
ListBox1.Visible = True
At1 = Filter(Ar1, TextBox1.Text, True)
ListBox1.List = At1
Else
ListBox1.Visible = False
End If
End Sub
複製代碼
作者:
StanleyVic
時間:
2011-8-10 15:14
本帖最後由 StanleyVic 於 2011-8-10 15:17 編輯
回復
8#
GBKEE
感謝大大的一路的指導: 和一路的嘗試 !!! 終於解決了!!!!
Q1 : 己經可以解決了因Userform1定義ListView,而引起的不能刷新問題. 在你的引領下. 我加多了這句: ".ColumnHeaders.Clear
" , 因為每按一下,Columnheader就生成多一次!
Private Sub MultiPage1_Change()
If MultiPage1.Value = 1 Then
With ListView1
.ColumnHeaders.Clear
.Gridlines = True
.View = lvwReport
.ColumnHeaders.Add , , "Searching Result ...", 180
End With
End If
End Sub
複製代碼
Q2: 暫時未用大大你的指示,我用了第二個方法, 主要因為我們的代碼中.欠了
ListBox1.Clear
這一句!! 解決了 Q2A 和 Q2B的兩個問題!
Q2A : (選用了ListView後,不能作修正,否則VBA報錯 ) 和 Q2B : ( 雖然DbClick,因為Textbox己為空白,所以不過彈出 )
Private Sub TextBox1_Change()
If TextBox1.Value <> "" Then
[color=Red]ListBox1.Clear[/color]
ListBox1.Visible = True
At1 = Filter(Ar1, TextBox1.Text, True)
ListBox1.List = At1
Else
ListBox1.Visible = False
End If
End Sub
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ListBox1.Visible = True
ListBox1.List = Ar1
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)