Board logo

標題: [發問] 請教老師:想將原本程序欄位的分析法,轉換為列位分析法 [打印本頁]

作者: jonn0510    時間: 2012-11-7 21:28     標題: 請教老師:想將原本程序欄位的分析法,轉換為列位分析法

請教老師:
想將原本程序欄位的分析法,轉換為列位分析法
原本程序:
Sub yy()
    For Each a In Range([M4], [M4].End(xlToRight))
    mystr = "=SUMPRODUCT((COUNTIF($E$1:$I$1," & a.Resize(5, 1).Address & ")>0)*1)"
    a.Offset(-3, 0) = Evaluate(mystr)
    Next
End Sub
1.本程序以儲存格E1~I1 為比對目標值,M4~M8為一組,若與E1~I1 相同則在M1 填入數據1.有想同2數則填入數據2
2.本程序以儲存格E1~I1 為比對目標值,N4~N8為一組,若與E1~I1 相同則在N1 填入數據1.有想同2數則填入數據2
3.如今想轉換位置..希望轉換成

1.本程序以儲存格A5~A9 為比對目標值,D11~H11為一組,若與A5~A9 相同則在A11 填入數據1.有想同2數則填入數據2
2.本程序以儲存格A5~A9 為比對目標值,D12~H12為一組,若與A5~A9 相同則在A12 填入數據1.有想同2數則填入數據2
3.以此類推........
4.不知道該如何將原本的程序進行修改,請老師們幫忙.謝謝
作者: GBKEE    時間: 2012-11-8 17:02

回復 1# jonn0510
修改如下
  1. Option Explicit
  2. Sub Ex()
  3.     Dim A As Range, mystr As String
  4.     For Each A In Range([D11], [D11].End(xlDown))  
  5.         mystr = "=SUMPRODUCT((COUNTIF(A5:A9," & A.Resize(1, 6).Address & ")>0)*1)"
  6.         Cells(A.Row, "A") = Evaluate(mystr)
  7.     Next
  8. End Sub
複製代碼

作者: jonn0510    時間: 2012-11-8 20:01

回復 2# GBKEE

GBKEE 老師:
可以了!
感謝您的幫忙!
謝謝您




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