Board logo

標題: [發問] 判斷被選取的儲存格,並取出所在列的相關資料 [打印本頁]

作者: jesscc    時間: 2011-8-27 01:03     標題: 判斷被選取的儲存格,並取出所在列的相關資料

我的工作有點複雜詳細說明在附檔內
我希望限制在B欄的B4以下(也就是訂單編號欄),一次只點選一個儲存格後,按下"出貨單"按鈕,就能夠將此訂單編號的客戶訂購相關資訊copy到工作頁"出貨單"之中的相對應位置,並順便計算填入單項產品金額。最後複製這份"出貨單"工作頁,建立成一個新活頁簿(以此訂單編號為名,內含一個工作表,也以此訂單編號為名)。

我現在的問題是
1.不知道如何正確判斷哪一個訂單編號被選取。雖然附檔已經試出來,但執行不太正常,點選B欄以外,按"出貨單"按鈕,會出現偵錯。
2.不知道該如何只抓取客戶有訂購的產品,填入出貨單。

附檔中"出貨單"工作頁,是我用人工輸入進去的。
[attach]7612[/attach]
作者: Hsieh    時間: 2011-8-27 10:33

  1. Private Sub CommandButton1_Click()
  2. Dim ay()
  3. With Sheets("訂單")
  4. r = ActiveCell.Row
  5. a = .Range(.Cells(r, "B"), .Cells(r, "D")).Value
  6. b = .Range(.Cells(r, "U"), .Cells(r, "W")).Value
  7. x = .Cells(r, "S")
  8. y = .Cells(r, "T")
  9. For Each c In .Range(.Cells(r, "G"), .Cells(r, "O")).SpecialCells(xlCellTypeConstants, 1)
  10. k = c.Column
  11. ar = Array(.Cells(3, k), "", c, Val(.Cells(2, k)), c * 20, Val(.Cells(2, k)) * c * 20)
  12. ReDim Preserve ay(s)
  13. ay(s) = ar
  14. s = s + 1
  15. Next
  16. End With
  17. With Sheets("出貨單")
  18. .[B9:G17] = ""
  19. .[C4].Resize(3, 1) = Application.Transpose(a)
  20. .[F4].Resize(3, 1) = Application.Transpose(b)
  21. .[B9].Resize(s, 6) = Application.Transpose(Application.Transpose(ay))
  22. .[G19] = x
  23. .[G21] = y
  24. .Select
  25. End With
  26. End Sub
複製代碼
回復 1# jesscc
作者: jesscc    時間: 2011-8-27 12:12

回復 2# Hsieh


   謝謝 H大!
我稍為修改了一下,發現如果點選了B4:B6之外的儲存格,再按出貨單按鈕,還是會出現錯誤。
我是希望把使用者點選的範圍限制在 B4~最後一筆資料內,點選其他的地方,程式就跳出不反應。
還有,如果我按出貨單按鈕後,程式發現已經有同名的檔案了,問我要不要覆蓋原檔,若選"否"程式也會出現錯誤,這種情不知該如何修正?

[attach]7613[/attach]
作者: Hsieh    時間: 2011-8-27 14:57

本帖最後由 Hsieh 於 2011-8-27 15:27 編輯

回復 3# jesscc

存檔問題先自己搜尋文章解決
遇到不懂再提出
    [attach]7617[/attach]
作者: jesscc    時間: 2011-8-27 17:53

回復 4# Hsieh


    謝謝 H大可以了




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