標題:
[發問]
判斷被選取的儲存格,並取出所在列的相關資料
[打印本頁]
作者:
jesscc
時間:
2011-8-27 01:03
標題:
判斷被選取的儲存格,並取出所在列的相關資料
我的工作有點複雜詳細說明在附檔內
我希望限制在B欄的B4以下(也就是訂單編號欄),一次只點選一個儲存格後,按下"出貨單"按鈕,就能夠將此訂單編號的客戶訂購相關資訊copy到工作頁"出貨單"之中的相對應位置,並順便計算填入單項產品金額。最後複製這份"出貨單"工作頁,建立成一個新活頁簿(以此訂單編號為名,內含一個工作表,也以此訂單編號為名)。
我現在的問題是
1.不知道如何正確判斷哪一個訂單編號被選取。雖然附檔已經試出來,但執行不太正常,點選B欄以外,按"出貨單"按鈕,會出現偵錯。
2.不知道該如何只抓取客戶有訂購的產品,填入出貨單。
附檔中"出貨單"工作頁,是我用人工輸入進去的。
[attach]7612[/attach]
作者:
Hsieh
時間:
2011-8-27 10:33
Private Sub CommandButton1_Click()
Dim ay()
With Sheets("訂單")
r = ActiveCell.Row
a = .Range(.Cells(r, "B"), .Cells(r, "D")).Value
b = .Range(.Cells(r, "U"), .Cells(r, "W")).Value
x = .Cells(r, "S")
y = .Cells(r, "T")
For Each c In .Range(.Cells(r, "G"), .Cells(r, "O")).SpecialCells(xlCellTypeConstants, 1)
k = c.Column
ar = Array(.Cells(3, k), "", c, Val(.Cells(2, k)), c * 20, Val(.Cells(2, k)) * c * 20)
ReDim Preserve ay(s)
ay(s) = ar
s = s + 1
Next
End With
With Sheets("出貨單")
.[B9:G17] = ""
.[C4].Resize(3, 1) = Application.Transpose(a)
.[F4].Resize(3, 1) = Application.Transpose(b)
.[B9].Resize(s, 6) = Application.Transpose(Application.Transpose(ay))
.[G19] = x
.[G21] = y
.Select
End With
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/)