Board logo

標題: 求助 VBA Vlook 要執行好久 [打印本頁]

作者: JOSH    時間: 2012-11-15 16:46     標題: 求助 VBA Vlook 要執行好久

Dear 大大們
下列是我下的指令,可是要執行好久~~
請問
1.要如何修改才不會執行那來久
2.要如何加入當V無資料時,以空值顯示
謝謝~ 感激不盡



Dim i As Integer
    Range("d4:d2000") = ""    '(清除舊有資料)
    For i = 4 To 2000           '(決定有幾多行)
    Range("D4").Select
    Cells(i, "D") = "=VLOOKUP(""1002""&RC[-3],List!C[-3]:C[13],8,FALSE)"
    Cells(i, "D") = Cells(i, "D").Value
    Next i
作者: mark15jill    時間: 2012-11-15 16:59

回復 1# JOSH


    個人建議..
如果您要用VBA 寫法
可以不用拘束於 "=XXXXXX"
直接判斷就好..
例如
        For i = 4 To ActiveSheet.Range("a4").CurrentRegion.Rows.Count
                       If (InStr(1, 工作表1.Cells(i, 1), "搜尋") >= 1) Then
                     工作表1.Cells(i, 7) = "find"
                     工作表1.Cells(i, 11) = InStr(工作表1.Cells(i, 1), "搜尋")
                     s = s + 1
                       else
                        工作表1.cells(i,7)=""
                End If

         next
作者: JOSH    時間: 2012-11-15 17:31

[attach]13146[/attach]
[attach]13147[/attach]
[attach]13148[/attach]


大大~~ 請問我那裡錯了嗎?
請指導
謝謝

Sub h()

For i = 4 To ActiveSheet.Range("a4").CurrentRegion.Rows.Count
If (InStr(1, Summary!.Cells(i, 1), "=VLOOKUP(""1002""&RC[-3],List!C[-3]:C[13],8,FALSE)") >= 1) Then
Summary!.Cells(i, 7) = "find"
Summary!.Cells(i, 11) = InStr(Summary!.Cells(i, 1), "=VLOOKUP(""1002""&RC[-3],List!C[-3]:C[13],8,FALSE)")
s = s + 1
Else
Summary!.Cells(i, 7) = ""
                End If

         Next

End Sub
作者: JOSH    時間: 2012-11-15 17:35

大大~~ 請問我那裡錯了嗎?
請指導
謝謝

Sub h()

For i = 4 To ActiveSheet.Range("a4") ...
JOSH 發表於 2012-11-15 17:31



    [attach]13150[/attach]
作者: Hsieh    時間: 2012-11-15 21:28

回復 4# JOSH
  1. Sub h()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. With Sheets("List")
  4. For Each a In .Range(.[A2], .[A2].End(xlDown))
  5.   d(a.Value) = a.Offset(, 7)
  6. Next
  7. End With
  8. With Sheets("Summary")
  9. For i = 4 To .[IV2].End(xlToLeft).Column
  10. For Each a In .Range(.[A4], .[A4].End(xlDown))
  11. .Cells(a.Row, i) = d(.Cells(2, i) & a)
  12. Next
  13. Next
  14. End With
  15.   
  16. End Sub
複製代碼

作者: mark15jill    時間: 2012-11-16 09:44

回復 3# JOSH

Sub h()

For i = 4 To ActiveSheet.Range("a4").CurrentRegion.Rows.Count
If (InStr(1, Summary!.Cells(i, 1), "=VLOOKUP(""1002""&RC[-3],List!C[-3]:C[13],8,FALSE)") >= 1) Then
Summary!.Cells(i, 7) = "find"
Summary!.Cells(i, 11) = InStr(Summary!.Cells(i, 1), "=VLOOKUP(""1002""&RC[-3],List!C[-3]:C[13],8,FALSE)")
s = s + 1
Else
Summary!.Cells(i, 7) = ""
                End If

         Next

End Sub

Summary! .cells(XXXXXXXXXXXX
改成 Summary.cells(XXXXXXXXXXXXXXX
作者: JOSH    時間: 2012-11-16 18:01

回復 5# Hsieh


    版大~~
可以麻煩你再幫我看看嗎~
我帶出來的資料都一樣
謝謝
[attach]13164[/attach]
[attach]13165[/attach]
作者: JOSH    時間: 2012-11-27 16:01

Dear Hsieh 版大~~
可以幫我看看嗎?2012-11-16 18:01
謝謝




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