範圍(MSTR)?=?列表框1。值' & lt單元格>地區(MSTR)=?ListBox1的值,mstr指的是妳點擊的單元格,但我沒看到妳定義了全局變量。
列表框1。可見?=?假的?ListBox1隱藏
文本框1。可見?=?假的?文本框1隱藏
結束?“Sub”子程序結束
私人?Sub?“textbox 1 _ change()”textbox 1更改事件。
開?錯誤?簡歷?什麽時候下壹次是個錯誤?去?然後
我。列表框1。明白了嗎?清除listbox1中的值。
暗淡?啊?ARR1(),?k?作為?整數,?sss?作為?'字符串'定義變量?ARR,ARR1()-主動數組,k?為了什麽?整數值,sss?為了什麽?字符串
ARR?=?工作表(“數據”)。Range("F1:F2000 ")'?ARR=數據表中f1:F2000的值(這句話應該有問題,可能是f1:g2000)。
sss?=?我。文本框1。' Text '將文本控件中輸入的內容分配給變量sss。
雷迪姆?ARR1(1?去哪?UBound(ARR))'重新定義數組arr1的範圍?1?上標到數組arr
為了什麽?x?=?1?去哪?UBound(ARR)'設置變量範圍從X=1到(ARR)
如果?Asc(sss)?& gt?0?s如果?sss的首字母轉換成數值後> 0?然後執行?
如果?ARR(X,?1)?比如?UCase(sss)?& amp?"*"?s如果?ARR(X,1)?相似?大寫(sss)。添加通配符*進行匹配。
k?=?k?+?1' k = k+1,其中k是計數器,
ARR1(k)?=?ARR(X,?2)'數組arr1的第k個值(即當前最後壹個)=arr(x,2)。
結束?如果判斷過程結束。
另外,此外
如果?ARR(X,?2)?比如?sss?& amp?"*"?s如果?ARR(X,2)?相似?sss?添加通配符(本段可以簡化)
k?=?k?+?1'k=k+1
ARR1(k)?=?ARR(X,?2)'ARR1(k)=ARR(X,2)
結束?如果判斷過程結束。
結束?如果判斷過程結束。
下壹個?下壹個X
k?=?0'k=0
我。列表框1。列表?=?ARR1 '?listbox中列表項的值= arr 1。
結束?“Sub”子程序結束
私人?Sub?工作表_SelectionChange(ByVal?目標?作為?Range)'當工作表選擇發生變化時,執行此過程,即工作表選擇事件。
如果?目標。專欄?=?1?然後呢。目標。成排。數數?=?1?if Then Target的列標簽=1?而Target的行數的計數值=1?然後執行?:也就是說,選定的單元格在列A中,並且單元格圖案字段是列,則
MSTR?=?目標。Address'MSTR=?目標的地址:這個變量在頂部有壹個引用,應該定義壹個公共變量。
文本框1。Top?=?ActiveCell。頂級?文本框頂部1 =?活動單元格的頂部
列表框1。Top?=?文本框1。Top?+?文本框1。身高?列表框頂部1 =?TextBox1+的頂部?TextBox1的高度:這兩句話設置了textbox+listbox出現的位置。應該首先調用Visible=true。然後設置控件出現的位置。左也應該設置。Witdh等屬性。
列表框1。可見?=?真的嗎?ListdBox1顯示
文本框1。可見?=?真的嗎?文本框1顯示
否則。
列表框1。可見?=?假的?ListBox1隱藏
文本框1。可見?=?假的?文本框1隱藏
結束?如果判斷過程結束。
結束?“Sub”子程序結束
Sub?AA()'子程序?AA()
MsgBox?Len("A ")?& amp?"?-"?& amp?LenB("A ")'彈出壹個消息框,顯示?1-2。不知道在這裏有沒有什麽特別的意義!
結束?子程序結束ARR?=?工作表(“數據”)。範圍(" F1:F2000 ")
這與
ARR(X,?2)?不,妳確定這個代碼可以運行嗎?
總的來說有點亂。不知道是不是妳復制的關系
另外:textbox是壹個文本框,listbox是壹個列表框。。
上述代碼的總體思路是:
單擊當前工作表中A列的任意單元格(單元格個數小於2),將顯示列表框和文本框控件。。文本框的頂部與單元格的底部平齊。列表框的頂部後面是文本的底部。。
當文本框的值發生變化時,運行textboxchange事件(註意,每次輸入或刪除字符時都會運行該事件),在數據表的f1:f2000區域中找到當前輸入字符開頭的內容,並將所有內容添加到列表框控件中。。(中間有壹個數組作為傳送,沒有重復)
選擇列表框中的內容,當鼠標單擊時。觸發壹個列表框點擊事件(我感覺不是很好,所以改成雙擊事件)將內容添加到上壹個活動單元格。控件被隱藏。。