2016-07-13 67 views
0

我已經我想在(剩餘片材)所選擇的行 Excel工作表包含這些數據(附圖) enter image description here查找的特定範圍內最後一行的數據練成

所選行是最後一個數據(35,000IQD)在埃爾比勒市。

這意味着我想有最後一排(特定的)城市與特定的(卡式) (有帶卡類型35000埃爾比勒市的兩個數據行,我想給我的最後一個) 謝謝提前。

+0

讓我們瞭解您已經嘗試 – RGA

+0

這不是一個免費的編碼服務 – RGA

回答

1

如果我正確理解你的問題,那麼你就試試這個代碼:

Sub MatchingCityAndCardType1() 
Dim City As String, i As Long, Last_Row As Long 
Last_Row = Cells(Rows.Count, "E").End(xlUp).Row 

For i = Last_Row To 2 Step -1 
    City = Cells(i, "C").Value 
    If City = "erbil" And Mid(Cells(i, "E"), 1, 6) = "35,000" Then 
     MsgBox "The card remaining of " & City & " city with card type " _ 
     & Cells(i, "E").Value & " is " & Cells(i, "J").Value & "." 
     Exit For 
    End If 
Next i 
End Sub 

這段代碼的輸出是

enter image description here


按pashew的要求在下面的評論,此代碼應該可以工作

Sub MatchingCityAndCardType2() 
    Dim City As String, i As Long, Last_Row As Long 
    Last_Row = Cells(Rows.Count, "E").End(xlUp).Row 

    For i = Last_Row To 2 Step -1 
     City = Cells(i, "C").Value 
     If City = "erbil" And Mid(Cells(i, "E"), 1, 6) = "35,000" Then 
      'Set the range destination, Range(「A2」), depending on which 
      'range you want in Sheets(「Remaining」) 
      Rows(i).EntireRow.Copy Destination:=Worksheets("Remaining").Range("A2") 
      Exit For 
     End If 
    Next i 
    End Sub 

我把這段代碼放在工作表代碼模塊中:主要數據表

+0

親愛的主席先生,我想在一排 日期城市卡式卡NO將這些值(剩餘表)。免費存儲卡剩餘 27/09/2016埃爾比勒35000 27 1 3個 感謝您的支持 – pashew

+0

@pashew看看我的編輯答案 –

+0

親愛的@阿納斯塔西-諾娃我想這些值在一行中移動(剩餘片材) (27/09/2016/erbil/35,000/27/1/3) 我想將其他人移動到(erbil - 4,8000)(soran - 35,000)(soran-- 48,000) 等等 (最後輸入數據和城市和卡類型的過濾器)您可以選擇最後輸入的數據按日期 在圖片中有3列(erbil-35,000)我想移動最後一個 感謝您的支持 – pashew

0

有幾個方法,你可以接近這樣的:

  • 使用方法阿納斯塔西-諾娃曾表示。
  • 使用自動篩選和特殊細胞
  • 使用數組
  • ,可能更

這一個使用find方法速度更快,然後循環。

我假設卡片類型是一個整數值而不是字符串,但是如果它是一個字符串,只是將CardType更新爲字符串並將值包含在引號中。

Sub FindLastRow() 
    Dim city As String, FirstAddress As String 
    Dim CardType As Long 
    Dim rng As Range 
    Dim a 

    city = "erbil" 
    CardType = 35000 

    With ThisWorkbook.Sheets("Main Data Sheet") 
     Set rng = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 10)) 
    End With 

    With rng 
     Set a = .Find(what:=city, SearchDirection:=xlPrevious) 

     If Not a Is Nothing Then 
      FirstAddress = a.Address 
      Do 
       If a.Offset(0, 2) = CardType Then 
        ' Update this part with whatever you want to do to the last row 
        MsgBox a.Address 
        Exit Do 
       Else 
        Set a = .FindNext(a) 
       End If 
      Loop While Not a Is Nothing And a.Address <> FirstAddress 
     End If 
    End With 
End Sub 
+0

親愛的@Tom 我想將這些數值移動到(剩餘紙張)(27/09/2016/erbil/35,000/27/1/3),我想(比爾 - 4,8000)(soran - 35,000)(soran-- 48,000)等等(最後輸入的數據用城市和卡類型的過濾器),您可以選擇圖片中最後輸入的數據有3列(erbil-35,000)我想移動最後一個謝謝你的支持 – pashew