返回列表 上一主題 發帖

加權平均數VBA

加權平均數VBA

請問各位大大,如何寫出加權平均數的VBA

由於加權平均數循環計算,想要嘗試的寫,但是有很多語法不清楚,不會用特別專業只會簡單的語法使用。
想詢問以下語法在VBA要怎麼打

計算三年(365*3筆資料)的周一到周七算出一個加權平均數
1、如何抓出周一到周七數值的平均數
2、平均值在減掉原本的數算出絕對距離
3、抓出周一到周七最大值與最小值然後減去平均值
4、在VBA使用ln、Exp

回復 21# 518587
Ln(1)=0的那裏,為什麼還可以算出值?!

程式碼開頭有   On Error Resume Next   '程式碼有錯誤時 繼續下一行程式碼(不理會)

接下有註解  '*** 到 A578 時 H578 = 1 Ln(.Cells(1, 6))=0
                '*** 分母=0 不可除 的錯誤  ***************
                '*** 接下的數字會有錯誤    ***************
                '.Cells(1,7) 'I欄 ** 6.ck=(-(Dpk^2)/ln(Ri))       (出現一個數)
                .Cells(1, 7) = -(.Cells(1, 4) ^ 2) / Application.Ln(.Cells(1, 6))
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 20# GBKEE


謝謝版大,真的很謝謝你的幫忙!!
找出了問題也解決了~
但是有個問題想請問一下,
幫Ln(1)=0的那裏,為什麼還可以算出值?!
想請問一下版大,是做了什麼功能或是計算呢?

TOP

回復 19# 518587
  1. .Cells(1, 11) = Abs(.Cells(1, 2) - .Cells(1, 10))
  2. Debug.Print .Cells(1, 11).Address & " : " & .Cells(1, 11)  '加上這行查看.Cells(1, 11)的值
  3. GoTo A
複製代碼


Debug.Print 察看到 前段到M410 一直是>0.1
跳不出 If .Cells(1, 11) > 0.1 Then 的判斷
  1. $M$410 : 1.11185372875004
  2. $M$410 : 1.11185372875005
  3. $M$410 : 1.11185372875006
  4. $M$410 : 1.11185372875006
  5. $M$410 : 1.11185372875006
  6. $M$410 : 1.11185372875006
  7. $M$410 : 1.11185372875004
  8. $M$410 : 1.11185372875005
  9. $M$410 : 1.11185372875006
  10. $M$410 : 1.11185372875006
  11. $M$410 : 1.11185372875006
  12. $M$410 : 1.11185372875006
  13. $M$410 : 1.11185372875004
  14. $M$410 : 1.11185372875005
  15. $M$410 : 1.11185372875006
  16. $M$410 : 1.11185372875006
  17. $M$410 : 1.11185372875006
  18. $M$410 : 1.11185372875006
  19. $M$410 : 1.11185372875004
  20. $M$410 : 1.11185372875005
  21. $M$410 : 1.11185372875006
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 17# GBKEE


  檔案在附件中!!!

全部的那個跑會斷在417欄
然後我將1~416跟417以後的拆成兩個工作表
發現1~416的會一直跑不會停
417之後的是可以跑出結果的

想請版大幫我看看到底是哪一部分出了問題!!!!

問.rar (123.78 KB)

TOP

回復 17# GBKEE


可是他是到A417欄就沒有跑下去了!!
然後我把1到416的移到其他地方,
第417欄位移到第2爛後面的一起移動,
在一次跑VBA是可以跑得,而且也會停止,不會停到578欄

依版大的專業來看,這是什麼樣的問題呢?!
我始終找不到問題...

TOP

回復 16# 518587
6# 中有註解
  1.                '*** 到 A578 時 H578 = 1 Ln(.Cells(1, 6))=0

  2. 41.                '*** 分母=0 不可除 的錯誤  ***************

  3. 42.                '*** 接下的數字會有錯誤    ***************
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 13# GBKEE


你好!!!!
感謝你的幫忙,我已經做出來了迴圈!
但是出現了一個問題就是
他只會執行到417列之後的都會出錯,但是把417之前的移除在執行程式是可以執行的
想請問為什麼會這樣呢?!

TOP

回復 13# GBKEE


版大,你好!!!!
對不起,我的問題這麼多....一直麻煩版大真的很不好意思!!!

附件有附上檔案,出現了以下的問題:
1、我在最上面加入了欄位的字串名稱,但是為什麼只出現L、M欄的字串
2、版大如果下在開啟後執行是可以跑得,但是如果把下面的判斷式的註解拿掉,開始執行判斷式就會出現問題
       出現的問題有
      (1) 工作表1的那是直接用手打計算出的結果,跟VBA跑出來(工作表5)的結果不相同,為什麼呢?!是因為VBA計算數值不一樣嗎?
      (2)執行的時候,他停不下來,必須強制停止,怎麼樣才能夠讓他自動停止?
      (3)執行停止後,查看程式結果,上面有計算出來,但是下面到了一個地方以後全部都沒有出現,為什麼呢?!






問.rar (82.92 KB)

TOP

回復 4# GBKEE
很棒、很完整的 Find, FindNext 的使用範例, 收下, 謝謝版主!!

TOP

        靜思自在 : 修行要繫緣修心,藉事練心,隨處養心。
返回列表 上一主題