Board logo

標題: [發問] 請教如何再將程序縮減? [打印本頁]

作者: 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
  1. Sub nn()
  2. For Each a In Range([N11], [N11].End(xlToRight))
  3.   mystr = "=SUMPRODUCT((COUNTIF($F$1:$K$1," & a.Resize(5, 1).Address & ")>0)*1)"
  4.   a.Offset(-10, 0) = Evaluate(mystr)
  5. Next
  6. End Sub
複製代碼

作者: jonn0510    時間: 2012-8-21 05:22

回復 2# Hsieh

Hsieh 老師:
ok!感謝您的教導.
直接顯示最後結果,真的可以在省下1/3的時間.謝謝您




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