Board logo

標題: [發問] 將資料自動存入工作表(自動計算後) [打印本頁]

作者: kaiweidevil    時間: 2015-1-25 01:07     標題: 將資料自動存入工作表(自動計算後)

想請教一下
    我在表一中有個按鈕程式碼是
        
Sub 新增()
Sheets("輸入區").Select
i = [b1].Value
Sheets(i).Select
xrow = [A65536].End(xlUp).Row
Cells(xrow + 1, 1).Select

    With Cells(xrow + 1, 1)
    .Value = Sheets("輸入區").[b1].Value
    .Offset(0, 1).Value = Sheets("輸入區").[b2].Value
    .Offset(0, 2).Value = Sheets("輸入區").[b3].Value
    .Offset(0, 3).Value = Sheets("輸入區").[b4].Value
    .Offset(0, 4).Value = Sheets("輸入區").[b4].Value
    .Offset(0, 5).Value = Sheets("輸入區").[b6].Value
    .Offset(0, 6).Value = Sheets("輸入區").[b7].Value
    .Offset(0, 7).Value = Sheets("輸入區").[b8].Value
    .Offset(0, 8).Value = Sheets("輸入區").[b9].Value
    .Offset(0, 9).Value = Sheets("輸入區").[b10].Value

    End With
   
Sheets("輸入區").Select
[b1:b1000].ClearContents
End Sub

是當表一的下面輸入我需要的資料後依"編號"將日期、批號......放入與編號相同的工作表中
    例:
        編號:Z167
        日期:1040125
        批號:15010001
        零件編號:A00050
        零件品名:20W磁台組
        數量:100
        託工單號:15010065
        入庫單號:15010012
        單價:0.5
        小計:50

表二是零件貟料庫(只是簡單的將A、B、C欄全部選取然後將其輸入一個名稱(DB))
          A欄              B欄           C欄
  1  零件編號    零件品名     單價
  2  A00050   20W磁台組    0.5

表三會顯示出(工作表名稱是"Z167")

       編號         日期            批號         零件編號      零件品名      數量     託工單號      入庫單號    單價  小計
      Z167    1040125    15010001    A00050    20W磁台組    100    15010065    15010012    0.5    50

今天我有個問題
    1.上面的按鈕程式碼只能將我輸入的資料自動存入相同編號的工作表中
           我希望的是我在表一輸入零件編號時零件品名和單價會自動秀出且小計欄可以自動算出(單價*數量)在按了按鈕後貟料會自動存入
               
               希望的如下
                      編號:Z167    (此欄為手動輸入)
                      日期:1040125    (此欄為手動輸入)
                      批號:15010001    (此欄為手動輸入)
                      零件編號:A00050    (此欄為手動輸入)
                      零件品名:20W磁台組    (此欄為依輸入零件編號而自動秀出)
                      數量:100    (此欄為手動輸入)
                      託工單號:15010065    (此欄為手動輸入)
                      入庫單號:15010012    (此欄為手動輸入)
                      單價:0.5    (此欄為依輸入零件編號而自動秀出)
                      小計:50    (此欄為自動計算)
以上不知道是否有方法可以達到我想要的需求請各位前輩可以不吝指教謝謝
作者: prince120101    時間: 2015-1-28 14:51

回復 1# kaiweidevil

輸入區
B5=VLOOKUP(B4,零件貟料庫!A:B,2)
B9=VLOOKUP(B4,零件貟料庫!A:C,3)
B10=B6*B9

這樣嗎@@??
作者: kaiweidevil    時間: 2015-1-28 22:56

這三個是加在.
Offset(0, 4).Value = Sheets("輸入區").[b5].Value
Offset(0, 4).Value = Sheets("輸入區").[b9].Value
Offset(0, 4).Value = Sheets("輸入區").[b10].Value
的三個程式碼的下面嗎?
作者: prince120101    時間: 2015-1-29 14:12

回復 3# kaiweidevil

K大
是加在儲存格裡面喔

然後你程式最後面
[b1:b1000].ClearContents
可能也要改一下
b5 b9 b10 不能 clear
不然函數 就被刪除了
我只會這樣而已....~@@
你試試吧
作者: kaiweidevil    時間: 2015-1-29 23:01

prince120101前輩
我把[b1:b1000].ClearContents
改成[b1:b4,b6:b8,b10:b10000].ClearContents(我是用最笨的方式做的)
B5,B9,B10就函數不會被刪除了但會出現  #N/A
這個有可以救嗎?
作者: prince120101    時間: 2015-1-30 10:32

回復 5# kaiweidevil

k大
就如同我所說的 我就只會這樣而已~@@  哈
因為我也還太淺 太多東西不懂了
只能等有高手出手相救了~

我自己用的也是出現"#N/A" 但這會影響你的使用方式嗎@@??
當你 B4:零件編號  輸入時 B5 B9 B10一樣會作動
但一定有更好的方式 只能再搜尋看看了~

ps: 回復時 按下方"回復" 這樣對方才會知道你有回復喔~
作者: kaiweidevil    時間: 2015-1-31 04:07

回復 6# prince120101


  雖然N/A不太會影響到,個人是想如果可以的話還是不顯示出來比較好,
(因為老闆每次經過看到都會問為什麼會出現N/A是不是程式出現問題,會不會造成資料的問題)
不過現在在使用中很正常很順暢,沒有其它問題,在此謝謝您的不吝指教
作者: prince120101    時間: 2015-1-31 10:48

本帖最後由 prince120101 於 2015-1-31 10:54 編輯

回復 7# kaiweidevil

k大 你的問題有解了..
用IF去判斷..加入ISNA..
B5=IF(ISNA(VLOOKUP(B4,零件貟料庫!A:B,2)),"",VLOOKUP(B4,零件貟料庫!A:B,2))
B9=IF(ISNA(VLOOKUP(B4,零件貟料庫!A:C,3)),"",VLOOKUP(B4,零件貟料庫!A:C,3))

B10=IF(OR(B6="",B9=""),"",B6*B9)
試試吧

不過有顯示#N/A也不錯 至少知道那邊有函數 才不會去刪到
如果是我 至少B5 B9 B10 儲存格會填滿個顏色 至少知道 那邊有函數

PS:老闆這樣問 我應該會跟他狂解釋吧 即使他聽不懂 硬要說給他聽 哈




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