Board logo

標題: [發問] 請教此巨集要如何寫 ? [打印本頁]

作者: t8899    時間: 2014-3-17 15:51     標題: 請教此巨集要如何寫 ?

e20到e200 為公式如下
A20=IF(Y20="","",Y20/(y20-z20))
A21=IF(Y21="","",Y21/(y21-z21))
....
......
a1等於e20到e200 之間倒數第一筆"不等於空白"儲存格的值
巨集如何寫?
作者: owen06    時間: 2014-3-18 13:03

回復 1# t8899


    倒數第一筆不等於空白的值,指的是最後一筆有資料的值嗎?
    如果是的話:
  1. sub test
  2. For Each rng In [E20:E200]
  3. If rng <> "" Then [a1] = rng.Value
  4. Next
  5. end sub
複製代碼

作者: t8899    時間: 2014-3-18 15:10

本帖最後由 t8899 於 2014-3-18 15:12 編輯
    倒數第一筆不等於空白的值,指的是最後一筆有資料的值嗎?
    如果是的話:
owen06 發表於 2014-3-18 13:03

測試一下,您的巨集大約花3-4秒 (滑鼠會出現漏斗狀)
下面這巨集不到一秒,提供給您參考
不知下面這巨集為何會比較快???
Sub aaa()
For i = 200 To 20 Step -1
    If Cells(i, 5).Value <> "" Then
    Cells(1, 1).Value = Cells(i, 5).Value
    GoTo exitline
    Else
    End If
  Next i
  exitline:
End Sub
作者: t8899    時間: 2014-3-18 15:23

本帖最後由 t8899 於 2014-3-18 15:28 編輯

這更快,一行就解決
[a1] = Range("e" & Range("e20:e200").Find("*", , xlValues, , , xlPrevious).Row).Value
作者: Hsieh    時間: 2014-3-18 15:49

回復 4# t8899
[A1] = [E:E].Find("*", , xlValues, , , xlPrevious)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)