關於Excel組合框控制項的問題,關於Excel組合框控制項的問題

時間 2022-10-16 06:10:51

1樓:

第乙個問題

你用的是vba控制項工具中的組合框,這個只能顯示所選條目的id號,並且使用這個控制項,需要每個單元格都要插入乙個這個控制項,即不效率,也使得excel檔案臃腫,減緩運算速度。

如果要解決,有兩個方案可選擇:

1、直接使用excel自帶的「資料有效性——選項」功能,設定下拉選擇條目,這個不用每個單元格都設定,只要一次性選中具有相同選項的單元格區域統一設定即可。

2、使用vba的activex控制項中的combobox控制項,只需要插入乙個控制項,然後根據活動單元格(即游標所在單元格或被選中的單元格)狀態,在worksheet_change事件中加入相應**,使控制項跟隨游標移動,並自動判斷活動單元格所在列,自動裝入相應選項,這樣選出來的也是選項內容而不是id號。

上述兩個方案,優選第二個方案,既簡化了設定,又大大精簡了excel檔案大小(只有乙個控制項+一段**而已)。

第二個問題

在儲存前,首先要做的是對填寫的資料進行校驗(即所填資料是否符合相應規則,如果不符合,提示修改並不儲存),全部資料校驗通過,才將資料儲存到相應表中,並清空所填全部資訊。

通過後,儲存前,先計算資料庫(即圖二)必填專案的最後一行的位置,這個很簡單。比如a列內容是必填的,則表明a列是不可少的,它所佔的行數就是整個表的最大行數,所以用:

nrow=[a65536].end(xlup).row即可算出a列的最後一行有資料的行號,然後用:

cells(nrow+1,1)=********格式依次將填寫的資料儲存到圖二表最後一行的下一行。

由於看不到原始檔案,僅憑圖,無法給出具體**,所以,只能用文字描述編寫**的思路,只要認真理會,**應該沒有問題,況且這兩個問題所涉及的**都不複雜,每段最多不會超過20行。

2樓:匿名使用者

如果控制項是你自己做的 這個問題對你來說應該不難 combox 對應下列單元格 如果要順序填充 加個判斷就行了

3樓:匿名使用者

combobox的text屬性

關於vb控制項陣列的問題,關於VB控制項陣列的問題?

去掉判斷直接 print a 或者if label1 index then print a 或 if index then print a 這是一種簡寫,本人不提倡這麼簡寫。那樣你自己都不明白。if label1 index then print a 之中的label1 index 完整的應該是 l...

C驗證控制項的日期格式問題,關於c 的驗證控制項

用正規表示式來驗證是比較難的。我建議lz使用 maskedtextbox 在裡面選擇乙個適合的格式,這種textbox只能輸入固定格式的字串。另外使用控制項 datetimepicker,就更好啦。如果真的要按你說的那麼做,只有把輸入的字串取出,然後把他們擷取成3段,每段進行判斷一下。textbox...

關於EXCEL應用的問題,關於excel應用問題

if a1 100,1,if and a1 80,a1 100 1.2,if and a1 60,a1 80 1.4,新版excel可以用ifs如下 ifs a1 100,1,and a1 80,a1 100 1.2,and a1 60,a1 80 1.4 b1小於等於60顯示什麼?if a1 10...

關於excel的問題,請看圖,關於excel中的問題,請看圖,高分求解答

請看附件,是否是你要的效果。如下 public sub 比較後清除 dim r c r sheet1.cells 65536,1 end xlup row for i 1 to r c sheet1.cells i,10000 end xltoleft column for j 2 to c if ...

關於EXCEL中篩選的問題,關於EXCEL篩選的問題

先建立乙個輔助列,是年齡,輸入公式 year now mid a2,7,4 其中a2為身份證號碼,如圖 然後再選 自動篩選!1 如果身份證有15 18位,則用len函式把身份證號碼長度計算出來 2 再按身份證號碼長度排序 如公升序,則15在前,18在後 3 在身份證長度那一列後一列,輸入公式 1 身...