Board logo

標題: [發問] 如何查詢比對後加總合呈列 [打印本頁]

作者: BV7BW    時間: 2022-7-19 13:03     標題: 如何查詢比對後加總合呈列

本帖最後由 BV7BW 於 2022-7-19 13:06 編輯

請教 各位 先進 前輩 老師們

如何查詢比對後加總合呈列

問題(1)
1)客戶查詢:以O2:O200,點入後再K11格出現
.例選定O4(陳一)點入後,再K11格出現(陳一)
項目查詢以H4:200點入後再K9出現
例選定H4(你1)點入後,再K9格出現(你1)
問題(2)
1)單項目查詢以K9(項目)及K5.K6(日期)
至訂貨明細表中比對後加總和出
呈列A2:D2中.再帶出R2:V2各項目資料
E2(庫存)則須至項目編號中比對資料
呈現出E2(庫存)資料

2)單客戶查詢以K11(客戶)K5.K6(日期).
及K9(項目)至訂貨明細表中比對
帶出Q2:V2各項資料

3)項目總量查詢以K9(項目)及K5.K6(日期)
至訂貨明細表中比對後項目總合呈列A2;D2
E2(庫存)則須至項目編號中比對資料
呈現出E2(庫存)資料

4)客戶總量查詢以K11(客戶)及K5.K6(日期)
至訂貨明細表中比對項目總和
呈列R2:V2各項資料
作者: BV7BW    時間: 2022-7-19 16:20

回復 1# BV7BW [/b
修訂

3)項目總量查詢以K5.K6(日期)
至訂貨明細表中比對後項目總合呈列A2;D2
E2(庫存)則須至項目編號中比對資料
呈現出E2(庫存)資料
作者: lpk187    時間: 2022-7-20 11:15

回復 2# BV7BW

回你的間題一:
在銷售總量表的VBA模組:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'只有選擇1個儲存格才啟用
If Target.Count = 1 Then
    '客戶查詢:以O2:O200,點入後再K11格出現
    If Target.Column = 15 And Target.Row > 1 And Target.Row <= 200 Then
        [K11] = Target.Value
    End If
    '例選定H4(你1)點入後,再K9格出現(你1)
    If Target.Column = 8 And Target.Row > 1 And Target.Row <= 200 Then
        [K9] = Target.Value
    End If
End If
End Sub
另兩個問題都是查詢,你可以自已試著做看看,有問題再問,這樣學才會有進步!
作者: BV7BW    時間: 2022-7-20 11:57

回復 3# lpk187
謝謝 先進lpk187 大大
完成問題(1)及非常明細解說.
經演練完全符合需求
  感謝 lpk187 老師 指導 謝謝
作者: BV7BW    時間: 2022-7-20 12:23

本帖最後由 BV7BW 於 2022-7-20 12:28 編輯

回復 3# lpk187
  lpk187 老師
謝謝你明細注解
頓時想開=15及=8 這段程序用意
If Target.Column = 15 And Target.Row > 1 And Target.Row <= 200 The
If Target.Column = 8 And Target.Row > 1 And Target.Row <= 200 Then
  =15 是指在15欄中及=8一樣用意
我一直不懂這數字由來.經你注解頓時了悟
非常謝謝 lpk187 指教 謝謝
作者: samwang    時間: 2022-7-20 13:00

回復 1# BV7BW

問題1如下,請測試看看,謝謝
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 8 Then
    If Target.Row < 4 Then GoTo 99
    If Target.Row > 199 Then GoTo 99
    [K9] = Target.Value
End If
If Target.Column = 15 Then
    If Target.Row < 2 Then GoTo 99
    If Target.Row > 199 Then GoTo 99
    [K11] = Target.Value
End If
99:
End Sub
作者: BV7BW    時間: 2022-7-20 14:21

回復 6# samwang
samwang 大大 你好

測試後也完全符合需求
唯一這1段不解
If Target.Row < 4 Then GoTo 99
If Target.Row > 199 Then GoTo 99

GoTo 99這函意不解.可請幫解惑?
作者: lpk187    時間: 2022-7-20 14:57

回復 7# BV7BW

Goto 99 其主要是跳出程序,其實可以用 Exit Sub 就好了,不用 Goto 99
作者: BV7BW    時間: 2022-7-20 15:16

回復 8# lpk187
謝謝lpk187 老師指教
表示結束循環離開程式
謝謝指教
作者: Kubi    時間: 2022-7-20 18:32

回復 9# BV7BW
請參考此篇:
https://zh.wikipedia.org/zh-tw/%E9%9D%A2%E6%9D%A1%E5%BC%8F%E4%BB%A3%E7%A0%81

這是以前8位元電腦的BASIC語法(每行程式前有行號,可以使用GOTO行號的語法),就因為Goto來Goto去的會造成除錯的困擾,因此以後程式設計就摒棄這種語法,改為結構式的語法如 If Then 、Select Case 等,讓除錯更容易。
作者: samwang    時間: 2022-7-21 07:56

回復 7# BV7BW

如其他的大大說明是跳出那個條件的程序,99: 以後可以接您原先的程式碼,謝謝
作者: BV7BW    時間: 2022-7-21 15:20

lpk187 大大
Kubi 大大
samwang 大大
感謝三位老師指導
部分還在理解中.謝謝




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