返回列表 上一主題 發帖

[發問] VBA程式遇到第一個值擷取問題

[發問] VBA程式遇到第一個值擷取問題

A1:A25 為買賣價格
B1:B10 內容都是:買
所以我只抓取第一個買(B1),將A1的價格貼在C1,B2:B10都不管
B13:B15也是買,所以不管
B20:B25內容都是:賣
所以抓取第一個賣(B20),A20的價格貼在C20 ,B21:B25都不管
依此類推,VBA程式寫不出來寫了很久...麻煩高手幫忙一下或指點!
或是http://tw.knowledge.yahoo.com/question/article?qid=1713051300303

回復 1# 最高機密
試試看
  1. Option Explicit
  2. Sub EX()
  3.      EX_買賣 "買"   ' "買" 請修正
  4.      
  5.      'EX_買賣 "賣"
  6.      
  7. End Sub
  8. Sub EX_買賣(買賣 As String)      '指定參數(買賣)的型態為字串
  9.     With Range("b:b")            '物件: B欄範圍
  10.         With .Find(買賣, After:=.Cells(.Count), LOOKAT:=xlWhole)
  11.              'Find(搜尋)( 參數(買賣), B欄底部開始, xlWhole:儲存格內容完全相同))
  12.             .Offset(, 1) = .Offset(, -1)
  13.         End With
  14.     End With
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

感謝你的指點。
第一個買有出現價格,之後第一個賣有出現價錢。
之後又遇到很多個買的第一個買,就沒有價位了。賣也是@@

TOP

回復 3# 最高機密
之後又遇到很多個買的第一個買,就沒有價位了。賣也是@@
1#有這段相關的字句嗎? 又不附上檔案或圖示來說明.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

這樣嗎...."
你這種敘述要不是我剛好太閒才懶得看囧

  1. Sub TEST()
  2. Dim a()
  3. a() = ActiveSheet.Range("A1:B" & [B65536].End(xlUp).Row).Value
  4. Cells(1, 3) = a(1, 1)
  5. For s = 2 To UBound(a)
  6. If a(s, 2) <> a(s - 1, 2) Then Cells(s, 3) = a(s, 1)
  7. Next
  8. End Sub
複製代碼

TOP

Sub T20130515_1()
Dim xR As Range, J%, K%, T$
For Each xR In Range([A1], [A65536].End(3))
  T = xR(1, 2):  J = InStr("買賣", T)
  If T <> "" And J > 0 And J <> K Then xR(1, 3) = xR: K = J
Next
End Sub

略過B欄空格及其他字元,只檢測〔買.賣〕兩字是否有更換,
亦即,〔買.賣〕兩字不連續時也可判斷,
K值會保留上一個字是〔買〕或〔賣〕,再與J值比對,即可判斷!

TOP

        靜思自在 : 世上有兩件事不能等:一、孝順 二、行善。
返回列表 上一主題