- 帖子
- 110
- 主題
- 14
- 精華
- 0
- 積分
- 239
- 點名
- 0
- 作業系統
- win xp
- 軟體版本
- office 2003
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2010-8-2
- 最後登錄
- 2017-5-10

|
30#
發表於 2012-11-16 18:39
| 只看該作者
回復 28# Hsieh
Hsieh版大,不好意思,恕小的愚笨,我試了一整天才試出關於活動狀態的部份而以,所以只好再求救一下,
此方法把程式寫在【查詢】的「店別」欄位裡,所以只有在變動到「店別」的欄位時才能更新到【查詢】的內容,
所以如果想讓使用者在【資料檔】一變更數量欄位時就可以更新至【查詢】工作表的話,應該要如何設定才好呢?
目前的工作表不是不能使用,但是使用上有二個問題
一是必需將【資料檔】裡的數量欄位先清除掉,重新只key入想新增的數量,再至【查詢】工作表選擇店別,就可以順利新增,
但如果沒有全部清除的話,資料會混在一起分不清「儲位」是哪個店別的「儲位」,希望您能明白我在敘述什麼,殘念的希望週末回來後,
能再有所精進,祝您週末愉快^^- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim Ar(), A As Range
- If Target.Address <> "$B$1" Then Exit Sub
- If Application.CountA(Range([A5], Cells(Rows.Count, 1))) > 0 Then
- For Each A In Range([A5], Cells(Rows.Count, 1).End(xlUp))
- ReDim Preserve Ar(s)
- Ar(s) = Application.Transpose(Application.Transpose(A.Resize(, 8)))
- s = s + 1
- Next
- End If
-
- With Sheet1
- If Application.Count(.Range("B:B")) > 0 Then
- For Each A In .Range("B:B").SpecialCells(xlCellTypeConstants, 1)
- ReDim Preserve Ar(s)
- If A.Offset(, 8) = "V" And (A.Offset(, 9) > Date Or A.Offset(, 9) = "") And A > A.Offset(, 4) Then dot = Int(A / 1000) * 1000 Else dot = 0
- k = IIf(Target = "總店", 10, 11)
- If A.Offset(, 7) >= Date Then
- If A < A.Offset(, 4) Then
- m = "運費+手續費"
- ElseIf A.Offset(, 5) = "推" And A > A.Offset(, 4) Then
- m = "免運"
- ElseIf A.Offset(, 5) <> "推" And A > A.Offset(, 4) Then
- m = "運費"
- End If
- Else
- m = "已結束"
- End If
- Ar(s) = Array(A.Offset(, 2).Value, A.Value, A.Offset(, 3).Value, dot, A.Offset(, 12).Value, A.Offset(, k).Value, m, A.Offset(, 6).Value)
- s = s + 1
- Next
- End If
- End With
- If s > 0 Then [A5].Resize(s, 8) = Application.Transpose(Application.Transpose(Ar))
- Range("A4").CurrentRegion.Sort key1:=[A4], Header:=xlYes
- End Sub
複製代碼 |
|