返回列表 上一主題 發帖

[發問] 請教如何再將程序縮減?

[發問] 請教如何再將程序縮減?

請教各位老師:

下列程序是以 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 與內容的負擔.
所以想要在縮減程序,不知道行不行?謝謝

zz.rar (6.76 KB)

感謝各位老師花心思教導

本帖最後由 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
複製代碼
學海無涯_不恥下問

TOP

回復 2# Hsieh

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

TOP

        靜思自在 : 屋寬不如心寬。
返回列表 上一主題