返回列表 上一主題 發帖

請高手幫忙囉

請高手幫忙囉

小弟要計算訂單曾經入款的筆數,
但是公司系統會因為變更付款方式後而產生二個項次,
所以,卡住了,不知道該用什麼方法解決!
請幫忙!

取消.rar (6.59 KB)

新人一枚

回復 1# eric093

以附件內容執行後結果應該如下,也就是說,這訂單號碼曾經付款過,入款過,我就要刪除,只留下不曾入款過的

訂單號碼        項次        付款狀況
12345        1        取消
新人一枚

TOP

回復 2# eric093


    感謝大大,不過,這對我來說太難了,我得慢慢研究!
另外,我用我會的方式寫,但有問題,大大可以幫我看一下嗎?

Sub 未入款2()

Application.ScreenUpdating = False
Dim j As Integer
Dim E As Range
Dim xragne, yrange, wrange As Range
Set E = Sheets("未入款").Range("e2")

Application.DisplayAlerts = False


Do While E <> ""
j = 1
     If E.Offset(j) = E Then
     
        
        If E.Offset(, 1) = E.Offset(j, 1) Then
          If E.Offset(, 34) <> E.Offset(j, 34) Then
               If yrange Is Nothing Then Set yrange = E
               If wrange Is Nothing Then Set wrange = E.Offset(1)
              Set yrange = Union(yrange, E)
              Set wrange = Union(wrange, E.Offset(1))
           End If
         
        End If
    Else
     If E(1).Offset(, 34) = "付款確認" Then
       If xragne Is Nothing Then Set xragne = E
              Set xragne = Union(xragne, E)

          End If
    End If
    Set E = E.Offset(1)
    j = j + 1
Loop
If Not xragne Is Nothing Then xragne.EntireRow.Delete
If Not yrange Is Nothing Then yrange.EntireRow.Delete
If Not wrange Is Nothing Then wrange.EntireRow.Delete
End Sub

未入款.rar (7.47 KB)

新人一枚

TOP

回復 5# GBKEE


    謝謝版大,我來看一下我寫哪出錯了
新人一枚

TOP

回復 3# GBKEE

版主:問題是解決了,但我找了一些關於字典物件的資料,我有點搞不太懂,可以幫我開示嗎
            幫我解惑下面這段嗎
    Option Explicit
Sub Ex()
    Dim Rng As Range, d As Object, i As Variant, A As String
    Set d = CreateObject("scripting.dictionary")
    Set Rng =工作表1.Range("a1").CurrentRegion
    For i = 2 To Rng.Rows.Count
        A = Rng(i, 1) & "-" & Rng(i, 2)
        If d.EXISTS(A) Then   '字典物件的(key值)存在傳回True
            Set d(A) = Union(Rng.Rows(i), d(A)) ==========??
        Else
            Set d(A) = Rng.Rows(i)   ==========??

        End If
    Next
    For Each i In d.KEYS  ==========??

        If d(i).Rows.Count = 1 And InStr(d(i).Cells(3), "取消") = 0 Then
            d(i).Delete xlUp
        ElseIf d(i).Rows.Count > 1 Or d(i).Areas.Count > 1 Then
            d(i).Delete xlUp

        End If
    Next
End Sub
新人一枚

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題