返回列表 上一主題 發帖

請問大大出現重複的值要怎麼抓相對應的值

請問大大出現重複的值要怎麼抓相對應的值

本帖最後由 藍天麗池 於 2013-7-8 21:27 編輯

A                B              C                            D            E
84558        7956        1        7951.886961        845
84558        7957        1        7951.889495        845
84558        7956        1        7951.89153          845
84558        7956        1        7951.893564        845
84558        7957        3        7951.901137        845
84558        7956        1        7951.903162        845
84559        7957        1        7951.905679        845
84559        7957        1        7951.908193        845
84559        7957        9        7951.930713        845
84559        7957        1        7951.933202        845
84600        7957        3        7951.940657        846
84600        7957        1        7951.943137        846
84600        7957        1        7951.945615        846
84600        7957        5        7951.957967        846
84601        7957        4        7951.967805        846
84601        7957        1        7951.970258        846
84601        7957        2        7951.975158        846
84601        7958        2        7951.981022        846

請問大大,我要怎麼寫VBA當E欄出現846時抓上一個845所對應左邊的值(7951.933202)

重複的數值都是連續的嗎?
ss

TOP

試試:a = [e:e].Find(846, [e65536], , 1)(0, 0)

TOP

回復 3# oobird


    大大,抱歉小弟還是新手,可以說明一下嗎??
    在VBA上要如何呈現

TOP

回復 2# sunnyso


    對,都是連續的,E欄的值是抓A欄值的小時和分

TOP

Sub Macro1()

Dim DQ As Integer
'
For DQ = 1 To 17

If Range("D" & DQ).Value = 846 Then

Range("E" & DQ).Value = Range("c" & DQ - 1).Value
DQ = 17                                             ' 如果是一看到就結束,否則此指令可關閉
Else
End If

Next DQ

End Sub

TOP

回復 6# cji3cj6xu6


    大大,我的資料還要抓847,848,849...一直到1344,所以都要這樣嗎??
    可以簡略寫法嗎??

TOP

這個VBA要怎麼寫

本帖最後由 藍天麗池 於 2013-7-8 21:27 編輯

A                B              C                            D            E           F
84558        7956        1        7951.886961        845
84558        7957        1        7951.889495        845
84558        7956        1        7951.89153          845
84558        7956        1        7951.893564        845
84558        7957        3        7951.901137        845
84558        7956        1        7951.903162        845
84559        7957        1        7951.905679        845
84559        7957        1        7951.908193        845
84559        7957        9        7951.930713        845
84559        7957        1        7951.933202        845
84600        7957        3        7951.940657        846
84600        7957        1        7951.943137        846
84600        7957        1        7951.945615        846
84600        7957        5        7951.957967        846
84601        7957        4        7951.967805        846
84601        7957        1        7951.970258        846
84601        7957        2        7951.975158        846
84601        7958        2        7951.981022        846

請問版上大大,我要寫一個VBA的邏輯是搜尋E欄的內容(因為E欄是公式),當E欄出現846時在F2顯示845所對應左邊的值(7951.933202),這個VBA要怎麼寫

TOP

我的資料還要抓847,848,849...一直到1344,所以都要這樣嗎?? ==> 每次只抓第一筆嗎?
    可以簡略寫法嗎?? ==> 我只會if then / for 迴圈 的寫法,呵呵~

Sub Macro1()

Dim DQ, EndLine, FindValue As Integer
'
EndLine =2000                       '最後一筆資料
FindValue =846


For DQ = 1 To EndLine

If Range("E" & DQ).Value = FindValue Then
Range("F" & DQ).Value = Range("D" & DQ - 1).Value
FindValue=FindValue+1                                          
Else
End If

Next DQ

End Sub

TOP

回復 5# 藍天麗池

根據你的條件(連續時間)不用VBA就可以做到,見附件。你一定要用VBA嗎?
sonny.rar (7.77 KB)
sonny1.gif
ss

TOP

        靜思自在 : 人要自愛,才能愛普天下的人。
返回列表 上一主題