標題:
[發問]
請教如何再將程序縮減?
[打印本頁]
作者:
jonn0510
時間:
2012-8-19 22:02
標題:
請教如何再將程序縮減?
請教各位老師:
下列程序是以 F1~K1的任意數字為比對原始資料,N11~N15的任意數字若有與F1~K1的任意數字相同者,則分別在N4~N8顯示數字1 ,最後再加總於N1處.
Sub ZZ()
Set rng = [F1:K1]
For C = 14 To 24
Range(Cells(3, C), Cells(8, C)).Clear
Cells(1, C) = 0
For r = 11 To 15
If Application.CountIf(rng, Cells(r, C)) >= 1 Then
Cells(r - 7, C) = 1
Cells(1, C) = Cells(1, C) + 1
End If
Next r
Next C
End Sub
如附件---------------以上是之前請教大大的方法.
但是因為只需要將N11~N15的任意數字若有與F1~K1的任意數字相同者加總,顯示在N1處即可.
不需要分別在N4~N8顯示數字1,因為會增加 VBA 與內容的負擔.
所以想要在縮減程序,不知道行不行?謝謝
作者:
Hsieh
時間:
2012-8-19 23:14
本帖最後由 Hsieh 於 2012-8-19 23:15 編輯
回復
1#
jonn0510
Sub nn()
For Each a In Range([N11], [N11].End(xlToRight))
mystr = "=SUMPRODUCT((COUNTIF($F$1:$K$1," & a.Resize(5, 1).Address & ")>0)*1)"
a.Offset(-10, 0) = Evaluate(mystr)
Next
End Sub
複製代碼
作者:
jonn0510
時間:
2012-8-21 05:22
回復
2#
Hsieh
Hsieh 老師:
ok!感謝您的教導.
直接顯示最後結果,真的可以在省下1/3的時間.謝謝您
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)