Board logo

標題: Vlookup改為 vba 下拉式 連動 [打印本頁]

作者: owen9399    時間: 2014-3-2 17:01     標題: Vlookup改為 vba 下拉式 連動

DEAR 各位大大:
Vlookup 寫的公式 我會用

但如何 用表單 方式 做出
VBA寫出來

當 選擇 下拉式 的序號 , 另外帶出  公司名稱 與 紀念品
序號 往下一列 輸入 也不會寫

謝謝指導
作者: owen06    時間: 2014-3-3 10:46

回復 1# owen9399


  同是天涯owen人,這是我的笨方法,請參考看看。
作者: owen9399    時間: 2014-3-3 11:30

回復 2# owen06


    謝謝 大大的設計 感恩
作者: owen9399    時間: 2014-3-4 07:33

本帖最後由 owen9399 於 2014-3-4 07:34 編輯

回復 2# owen06


    大大 你好"

  我增加一些 元素
  表單 的 輸入方式 對應要 儲存格

  1.清除 與 統計表 等 未做出
  2.統計表 依 序號排列 自動 統計總和
  
謝謝
作者: owen06    時間: 2014-3-4 10:31

回復 4# owen9399


需要再增加的功能可以說明詳細一點嗎?  

點輸入,裡面的進貨、出貨、交單是要手key還是連動?
點下清除鍵,是要把哪邊的內容清除?
統計表的統計總和是要依序號類別分類還是全部?要統計的是什麼?
作者: owen9399    時間: 2014-3-4 12:25

回復 5# owen06

大大:
   
需要再增加的功能可以說明詳細一點嗎?  

點輸入,裡面的進貨、出貨、交單是要手key還是連動?
點下清除鍵,是要把哪邊的內容清除?
統計表的統計總和是要依序號類別分類還是全部?要統計的是什麼?


答"
進貨、出貨、交單 都是 數字 用 手動輸入的
點下清除鍵 是指 打把 表單 輸入的 序號  公司  到 ..... 曉陽交單
統計表 是將 SHEET1 輸入的 值,傳到統計表 中 ,順便 統計 序號 總數量 (相同的 序號 103001 列 相加 與總合 )

謝謝
作者: owen9399    時間: 2014-3-4 12:30

回復 5# owen06


  清除 有程式 不會做
作者: owen06    時間: 2014-3-4 13:02

回復 7# owen9399


    大概是這樣的概念,
    先用下拉式選單選擇好序號,然後按enter,就會直接跳到"台北出貨"欄,然後輸入數字後,按enter就跳下一格繼續輸入
    最後會跳到"輸入"鍵上,就直接按enter,然後就會把內容key到工作表上並把內容清除。
    你試試看吧~
作者: owen06    時間: 2014-3-4 13:08

可以順便請教一下版上的大大們,在userform裡,如何讓他在按下『輸入』鍵之後,指標直接跳回到第一格『序號』欄裡,因為我指令寫combobox1.select 行不通…
小弟剛接觸userform而已,還有很多不懂的地方,煩請賜教,謝謝~
作者: yen956    時間: 2014-3-4 15:52

回復 9# owen06
大大你好:
剛學 [A1].end(xldown), ..., 有點困惑, 還請大大解惑, 謝謝!!
我知道, 如果 A1:A10 存有資料, A11空白,
則 [A1].end(xldown).row 會=10,

但  『Range("A65536").End(xlUp).Offset(1, 0) 』
會停留在 A11 是不是?
也就是: 如果 Range("A65536") 是空白, 則
Range("A65536").End(xlUp)
會一直找到非空白(A10), 是不是?
作者: owen9399    時間: 2014-3-4 23:03

回復 8# owen06


    大大:
  
    有達到我要的功能
   
     但是,新增 序號 103007 開發金  禮盒 .....表單 卻 無法顯示出來,  下拉式 範圍 L2:L500
     另外,統計表 中 序號 自動排列 可以 用 SHEET3儲存
     成為
        序號         公司名稱      紀 念品  ........       進貨     ..  的總清單
     103001      ****             ****
     103002     ****             *****


     謝謝
作者: owen06    時間: 2014-3-4 23:14

回復 10# yen956
    其實很簡單呀,你在工作表裡,按ctrl+上、下、左、右鍵去動看看,就很清楚明暸了
    end(xldown)=ctrl+下
    end(xlup))=ctrl+上
    end(xltoright))=ctrl+右
    end(xltoleft))=ctrl+左
    然後你vba模式裡按f8,去一步一步執行,就能明白那些程式語言的代表意義是什麼了。
   
    另外如果是要在現有資料最後一列的下一列空白格新增資料,比較會建議用[a65536].end(xlup).offset(1,0).select
    因為你如果是用[a1].end(xldown).select,怕中間如果資料若是不連續的有空白格,他就不會跳到最後一筆資料,
    而是跳到中間空白格的上一列,就會產生判斷錯誤的情形,
    用[a65536].end(xlup).offset(1,0).select,就一定會跳到該欄資料的最後一筆的下一空白格。
    你先用ctrl+方向鍵去試看看吧。
作者: owen06    時間: 2014-3-4 23:52

回復 11# owen9399


    因為我的公式裡
TextBox1 = Application.VLookup([iv65536], Range("data"), 2, False)
TextBox2 = Application.VLookup([iv65536], Range("data"), 3, False)

這二行都是要用vlookup去尋找「data」這個"定義名稱"的範圍內容,而我之前只將他定義為L2:N7,
所以你之後再增加內容,但是DATA這個定義的範圍並沒有去修改,所以他就抓不到東西囉,我已經幫你改為L2:N500了
若你之後愈加愈多,你再自己去定義名稱裡面修改範圍吧。
另外我幫你修改了一下
  1. Private Sub UserForm_Initialize()
  2. ComboBox1.RowSource = Range("L2", Range("L65536").End(xlUp)).Address     '下拉式
  3. End Sub
複製代碼
這樣子你的下拉式選單會自動選定合適的範圍,才不會預設500格,然後下面空那麼多格,麻煩。
作者: yen956    時間: 2014-3-5 04:35

回復 12# owen06
感謝大大非常詳細的說明, 試過, 也了解, 謝謝!!
作者: owen9399    時間: 2014-3-5 07:53

回復 13# owen06


    大大 你好:
    當我 在 Sheet1 中 輸入      
     103013  聯電  玩偶     
     可以  自動 補到         L              M                   N 
                                    序號        公司名稱         紀念品
                                    103001         ***               *****
                                           ..      
                                           ..
                                    103013         聯電              玩偶      ( 紅色位置)

      原本的 方式是        L              M                   N             都是 先 輸入好的   清單
                                    序號        公司名稱         紀念品


     如果   直接  輸入  新的 ,自動補到 清單中

     另外,     差額 : 是指     曉陽交單 減  曉陽進貨    (如何用 VBA 表式 計算)

     統計表  的 想法是
     有 輸入 的     序號        公司名稱         紀念品      .......等 才顯示出來
     綠色 的 不要 顯示

    謝謝
作者: owen9399    時間: 2014-3-5 23:20

本帖最後由 owen9399 於 2014-3-5 23:24 編輯

回復 13# owen06


    DEAR 大大 :
   
    昨天的範例 不用改了

    我做新的 , 方法 和之前相似
    增加 日期 與 股數 等 項目 輸入 , 另外  
    序號    公司名稱   紀念品  移到  
      p              Q               R
    下拉式 無法 連動,增加 到   序號  1000筆
    總清單   與    年度報表   
     如 範本 所示
   
   程式 未完成
    謝謝

   未何 下拉式 的 DATA 改 位置 就無法 連動
作者: owen06    時間: 2014-3-5 23:48

本帖最後由 owen06 於 2014-3-5 23:49 編輯

回復 16# owen9399

如何修改定義名稱的範圍:http://office.microsoft.com/zh-tw/excel-help/HP005199063.aspx
當初data的定義範圍是L:N,你改成P:R,但是沒去修改data的內容,所以抓不到資料。

另外你在userform設計模式裡,去點各個輸入格的時候,看他的屬性裡,『性質分類』有一個『tabindex』,
他的數字代表按enter後,會跳的順序,你新增了三個輸入格,我幫你把他的順序改好了,
只要輸入完內容後,按enter就接著跳下一格直到『輸入』為止。
有其他問題再提出來一起討論吧。
作者: owen06    時間: 2014-3-6 12:30

本帖最後由 owen06 於 2014-3-6 12:32 編輯

關於之前問的,在資料key完按下『輸入』後,如何讓游標跳回『序號』那欄,
終於找到答案了,只要在最後輸入:combobox1.SetFocus
游標就會跳回『序號』囉~
作者: owen9399    時間: 2014-3-6 16:33

回復 18# owen06


    大大 你好:
    我將 SHEET1 用 總清單 方式 修改 只出現 前 4項 複製過去  ,其它 無法做出

    另外,年度報表 如何用 VBA 求出 ,不要 在儲存格 用函數 顯示出
   
   謝謝 指導
作者: owen9399    時間: 2014-3-9 04:54

回復 20# apao2000


    對 EXCEL  vba 不懂   可以問 版大或各位高手
大家都好棒
作者: owen9399    時間: 2014-3-10 15:45

回復 18# owen06


    大大 你好 :
   請問 前幾天 新增的 項目 可以 幫忙解決嗎 ?
  下拉式 0306的檔案

   謝謝
作者: owen06    時間: 2014-3-11 14:46

回復 21# owen9399


試試吧
作者: g721069    時間: 2014-3-11 23:13

好可惜,資歷太淺,無法賞閱大作,慟~
作者: owen9399    時間: 2014-3-14 14:27

回復 22# owen06


    大大你好:
    1.輸入後 總清單 可以,但是 年度報表有誤
   
     年度報表:
     配股  欄位     清空 跳過
     不要把 日期 貼上 ,股數沒顯示 ,   整個 統計有問題

     謝謝
作者: owen06    時間: 2014-3-14 19:49

回復 24# owen9399
作者: owen9399    時間: 2014-3-18 11:22

回復 25# owen06


    謝謝大大 的教導
作者: owen9399    時間: 2014-3-19 10:00

回復 25# owen06


    大大你好 :
   發現新問題
   年度報表 中 出現重覆 的 我用紅色註明,如何保留一個
   如何 將備註的 字 ,年度報表也顯示

   謝謝
作者: owen06    時間: 2014-3-19 12:31

回復 27# owen9399


    改好了@@




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)