Range(MSTR)?=?ListBox1.Value'<單元格>區域(MSTR)=?ListBox1的值,mstr看妳的代碼的意思,是妳點擊的單元格,,但沒看到妳定義全局變量。
ListBox1.Visible?=?False'?ListBox1隱藏
TextBox1.Visible?=?False'?TextBox1隱藏
End?Sub'子程序結束
Private?Sub?TextBox1_Change()'textbox1的change事件
On?Error?Resume?Next'當錯誤?轉到?下壹個
Me.ListBox1.Clear'?清除listbox1中的值
Dim?ARR,?ARR1(),?k?As?Integer,?sss?As?String'定義變量?ARR,ARR1()-活動數組,k?為?整型值,sss?為?字符串
ARR?=?Sheets("數據").Range("F1:F2000")'?ARR=數據sheet中f1:F2000的值(這句應該有問題,可能是f1:g2000)
sss?=?Me.TextBox1.Text'把文本控件裏輸入的內容賦值給變量sss
ReDim?ARR1(1?To?UBound(ARR))'重定義數組arr1的範圍為?1?到數組arr的上標
For?X?=?1?To?UBound(ARR)'設定變量範圍為X=1到<數組上限>(ARR)
If?Asc(sss)?>?0?Then'如果?sss的第壹字母轉為數值後>0?則執行?
If?ARR(X,?1)?Like?UCase(sss)?&?"*"?Then'如果?ARR(X,1)?類似?大寫(sss)。加上通配符*進行匹配
k?=?k?+?1'k=k+1,k為計數器,
ARR1(k)?=?ARR(X,?2)'數組arr1的第k個值(即目前的最後壹個)=arr(x,2)
End?If'If判斷過程結束
Else'另外
If?ARR(X,?2)?Like?sss?&?"*"?Then'如果?ARR(X,2)?類似?sss?加上通配符(此段可精簡)
k?=?k?+?1'k=k+1
ARR1(k)?=?ARR(X,?2)'ARR1(k)=ARR(X,2)
End?If'If判斷過程結束
End?If'If判斷過程結束
Next?X'下壹個X
k?=?0'k=0
Me.ListBox1.List?=?ARR1'?listbox中列表項的值=數組arr1
End?Sub'子程序結束
Private?Sub?Worksheet_SelectionChange(ByVal?Target?As?Range)'當工作表選區發生改變時執行本程序,即工作表選擇事件
If?Target.Column?=?1?And?Target.Rows.Count?=?1?Then'如果?Target的列標=1?並且?Target的行數的計數值=1?則執行?:即點選的單元格在a列,且單元格局域是壹列,則
MSTR?=?Target.Address'MSTR=?Target的地址:該變量在頂部有引用,應定義公***變量
TextBox1.Top?=?ActiveCell.Top'?TextBox1的頂部=?活動單元格的頂部
ListBox1.Top?=?TextBox1.Top?+?TextBox1.Height'?ListBox1的頂部=?TextBox1的頂部+?TextBox1的高度:這二句是設定textbox+listbox出現的位置。應該先調用visible=true。再設置控件出現的位置。同時應該設置left。witdh等屬性。
ListBox1.Visible?=?True'?ListdBox1顯示
TextBox1.Visible?=?True'?TextBox1顯示
Else'否則
ListBox1.Visible?=?False'?ListBox1隱藏
TextBox1.Visible?=?False'?TextBox1隱藏
End?If'If判斷過程結束
End?Sub'子程序結束
Sub?AA()'子程序?AA()
MsgBox?Len("A")?&?"?-"?&?LenB("A")'彈出消息框,顯示的內容為?1-2。這裏不知道是不是有什麽特殊意義!
End?Sub'子程序結束
ARR?=?Sheets("數據").Range("F1:F2000")
這與
ARR(X,?2)?不對應,妳確定這代碼能運行嗎?
總體來說,有點亂,不知道是不是妳復制的關系
另:textbox是文本框,listbox是列表框。。
上面這段代碼的大意是:
在當前工作表點擊a列任意壹個單元格(單元格數量小於2),則顯示列表框,文本框控件。。文本框的頂部與單元格底部持平。列表框頂部接著文本底部。。
當文本框 改變值時,運行textboxchange事件,(註意,該事件是每輸壹個字符或刪除壹個字符就運行壹次),在數據表中f1:f2000區域查找當前輸入字符開頭的內容,將所有內容添加到列表框控件內。。(中間有數組做為轉接,沒有去重復)
在列表框內選擇內容,鼠標單擊時。觸發列表框單擊事件(個人感覺不太好,換成雙擊事件),把該內容添加到之前的活動單元格。控件隱藏。。