標題:
[發問]
迴圈速度問題
[打印本頁]
作者:
spermbank
時間:
2013-4-14 17:41
標題:
迴圈速度問題
大家好:
我想請問一下:我的迴圈必須跑很久,有沒有辦法提升迴圈速度
我的程式是利用"代號比對"取上市損益、上櫃損益、上市合併損益、上櫃合併損益的基本每股盈餘併入首頁1的第三欄
並且區別損益與合併損益顏色
本來想用類似Range("BL" & i).Formula = "=IF(ISNA(VLOOKUP($A" & i & ",'X年'!$A$2:$E$" & x1 & ",4,FALSE)),0,VLOOKUP($A" & i & ",'X年'!$A$2:$E$" & x1 & ",4,FALSE))"
來寫程式速度應該比較快
可是我除了併入數值,還要區別顏色
所以不知道怎麼寫,所以想請一下大家如何提升速度,謝謝。
作者:
GBKEE
時間:
2013-4-15 18:17
回復
1#
spermbank
試試看
Sub Ex()
Dim Rng(1 To 2) As Range, Sh As Worksheet
Sheets("首頁1").Range("C:C").Interior.ColorIndex = xlNone
Set Rng(1) = Sheets("首頁1").[a2]
Do While Rng(1) <> "" '執行迴圈的條件: Sheets("首頁1").的A不是空格
For Each Sh In Sheets(Array("上市損益", "上櫃損益", "上市合併損益", "上櫃合併損益"))
Set Rng(2) = Sh.Range("A:A").Find(Rng(1).Value, LOOKAT:=xlWhole) '工作表群組中A欄尋找
If Not Rng(2) Is Nothing Then
With Rng(1).Offset(, 2)
.Cells = Rng(2).Cells(1, "S")
If Sh.Name = "上市損益" Or Sh.Name = "上市合併損益" Then
.Interior.Color = vbMagenta
Else
.Interior.Color = vbCyan
End If
End With
End If
Next
Set Rng(1) = Rng(1).Offset(1) 'Sheets("首頁1").[a2]....下移
Loop
End Sub
複製代碼
作者:
spermbank
時間:
2013-4-16 19:59
回復
2#
GBKEE
謝謝大大
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)