Re: [算表] 陣列函數寫成VBA

看板Office作者時間8年前 (2018/03/10 20:02), 8年前編輯推噓0(007)
留言7則, 1人參與, 8年前最新討論串2/2 (看更多)
※ 引述《tina1688 ()》之銘言: 各位 大大 想計算 範圍內的 不重複文字的 個數 但不知如何轉寫成VBA,有大大可以解惑嗎? 謝謝喔~ 示意圖 https://imgur.com/a/LZh4J 檔案連結 https://goo.gl/9Zp6mq -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.200.173 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1519823881.A.8CC.html

02/28 21:59,
迴圈,range.find、range.findnext來尋找範圍區間
02/28 21:59

02/28 21:59,
最後一個區間則判斷當尋找到的儲存格為第一次找到的
02/28 21:59

02/28 22:00,
range.address時則以最後一筆有值的儲存格
02/28 22:00

02/28 22:00,
有起迄區間儲存格,可配合evaluate來使用原工作表內
02/28 22:00

02/28 22:00,
所寫的陣列公式,儲存格置換為上述起迄區間儲存格位置字
02/28 22:00

02/28 22:00,
串以range.address,連接符號以&
02/28 22:00

02/28 22:00,
儲存格偏移上以range.offset
02/28 22:00
大大,研究一下後 用evaluate來輸入陣列函數,程式碼如下 但是執行顯示型態不符QQ 我已經找到區間範圍,剩下把陣列公式值丟到儲存格就好了 我要把=SUM(1/COUNTIF(範圍)) ,丟進去。再麻煩大大解惑 ActiveSheet.Range("V" & kkk + 1).Value = Application.Evaluate("=SUM(" & "1/COUNTIF(" & ActiveCell.Range("T" & kkk & ":U" & kkk + ADress_Row) & "))") -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.76.45 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1520683356.A.B8B.html

03/10 20:23, 8年前 , 1F
03/10 20:23, 1F

03/10 20:29, 8年前 , 2F
或range以address來取得位置字串
03/10 20:29, 2F

03/10 20:29, 8年前 , 3F
大大,因要判斷的Range有空格會顯示錯誤 故丟進去函數變成=SUM(IF(T2:U5<>"",1/COUNTIF(T2:U5,T2:U5))) 但顯示#value, 不知道是甚麼問題@@ 拜託大大解惑,謝謝 ActiveSheet.Range("V" & kkk).Value = Application.Evaluate ("=SUM(If(T" & kkk & ":U" & ADress_Row & "<>""" & "," & "1/COUNTIF (T" & kkk & ":U" & ADress_Row & "," & "T" & kkk & ":U" & ADress_Row & ")))") ※ 編輯: tina1688 (1.160.76.45), 03/11/2018 13:10:33

03/11 13:23, 8年前 , 4F
不等於""於字串內為""""表示,回文內會是"<>"""""
03/11 13:23, 4F

03/11 13:26, 8年前 , 5F
另外不帶入變數,"<>...countif(t"中間不需要用&來連接
03/11 13:26, 5F
大大是這樣嗎? https://imgur.com/a/P8TlH 不知道哪裡串接錯誤了Q.Q ※ 編輯: tina1688 (1.160.76.45), 03/11/2018 20:31:35

03/11 20:36, 8年前 , 6F
"""""改為""""
03/11 20:36, 6F
大大拍謝,測試後這次變成#VALUE @@ 檔案:http://t.cn/REDUFew Sub test() Dim kkk As Integer Dim ADress_Row As Integer kkk = 2 ADress_Row = 5 ActiveSheet.Range("V" & kkk).Value = Application.Evaluate _ ("=SUM(If(T" & kkk & ":U" & ADress_Row & "< >"""",1/COUNTIF _ (T" & kkk & ":U" & ADress_Row & "," & "T" & kkk & ":U" & ADress_Row & ")))") End Sub ※ 編輯: tina1688 (123.194.200.173), 03/11/2018 23:24:22

03/11 23:32, 8年前 , 7F
< >改為<>
03/11 23:32, 7F
文章代碼(AID): #1QeybSkB (Office)
文章代碼(AID): #1QeybSkB (Office)