簡體   English   中英

查找范圍之間的值,填寫下一個單元格

[英]find values between range, fill in next cells

我正在尋找一種方法來復制范圍內找到的所有數據並將其粘貼到下一列中。

A =文字數據

B =隨機數,但始終從1開始

C =一些數據

D =我需要的解決方案

Example:
     A          B   C    D
    018404.00   1   20  20
    018404x0    2   0   20
    018404f1    2   0   20
    018404v1    3   0   20
    11000-0532  4   0   20
    1004-1101   5   0   20
    0720-0125   3   0   20
    0810-0001   3   0   20
    0710-0040   3   0   20
    052269.00   1   0   80
    052269v6    2   0   80
    11001-0000  3   0   80
    1001-1110   4   0   80
    0720-0500   2   0   80
    0810-0001   2   80  80
    0720-0002   2   0   80
    052275.00   1   0   160
    052275v2    2   160 160

當B列中的值為1時,則在C列中找到值( Range B:B從1到1),將其復制到D

我已經嘗試過使用公式,但這限制了深度。 如果C列上的值距離第1行太遠,它將不起作用。

=IF(AND(B2=1;C2=0);IF(B3=1;0;IF(C3=0;IF(C4=0;C5;C4);C3));IF(C2>0;C2;I1))

所以我認為我需要一個vba解決方案。

我認為您需要這樣的東西。 此代碼搜索介於1到1之間的最大值

Sub FindValBetweenOne()

Dim LastRow As Long
Dim FindVal As Long

LastRow = Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row

For I = 1 To LastRow
    If Cells(I, "B").Value = 1 Then 'find next "1"
        FindVal = Cells(I, "C").Value
        J = I + 1
        Do While (J <= LastRow And Cells(J, "B").Value <> 1)
            If Cells(J, "C").Value > FindVal Then
            FindVal = Cells(J, "C")
            End If
            J = J + 1
        Loop            
    End If
    Cells(I, "D").Value = FindVal
Next I

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM