返回列表 上一主題 發帖

複製公式

回復 10# myleoyes


  
Rng(2).Offset(, i) = "=ROUND(r" & ii & "c6 *" & [M3] & ",2)"

[M3] 沒有數字,需給個數字
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# GBKEE
良師!謝謝!!
        抱歉!急著復原資料卻忘了M3的數據
         M3為任意數字範例為0.0254
        現在程式可以執行但結果並非所需
        差異之處附檔說明LeoV78-2B表示
       測試檔LeoV78-2A
       請不吝賜教真的辛苦囉謝謝再三!!

LeoV78-2B.rar (581.15 KB)

LeoV78-2A.rar (16.9 KB)

TOP

回復 12# myleoyes

   
按8月鈕正確狀態(因為第2筆在8月為 0 ,AI2等於0筆所以AI6沒有數據)                                                       

不懂請解釋一下,第2筆為何是8月的邏輯.

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 13# GBKEE
良師!謝謝!!
     #假設投入每月配息基金,且配息額非固定額#
     在5月4日與5月9日分別買入2筆基金
     在5月底配息所以AH3:AI3是2筆的各別配息額
     Z3為配息日期
     在6月14日再買入1筆基金
     在6月底配息所以AH4:AJ4是共3筆的各別配息額
     Z4為配息日期
     以此類推...詳記投資狀態
     模擬8月贖回5月9日的(第2筆)基金
     所以程式會將A4(編號2)變成 0
     也就是說每當任何被贖回的基金編號都會變為 0
     好讓AI2=0組做為程式參照用
     恰巧8月份也沒有買入基金
     在8月底沒贖回的基金息照樣配
     贖回的就沒有配所以AH6:AK6是共3筆的各別配息額
     A4=0(AI2=0組已贖回)所以AI6="",所以只配3筆
     話到此是否納悶?!!為何要建立AH,AI..等等欄的目的
     因為當投資的時間久遠與筆數變多
     當贖回時到底是損益多少??
     尤其是每月有配息且非固定額真的是不道配多少息..
     唯有將數字變成數據才能找到獲利的不二法則
     然而學Excel最迷人的地方就是"模擬"
     透過"精準的數據模擬"就能看到未來值!!
     這是心得.....晚安!!謝謝再三!!

TOP

回復 14# myleoyes
有贖回 A欄=0 ,有做這紀錄後,8#的程式碼應是符合你的期望.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 15# GBKEE
良師! 謝謝!!請看清楚動畫                                       
請按5月鈕再請看清楚AH3:AI3的數據                                       
AH3:AI3是同時有數據 , 再清除資料                                       
請按良師鈕再請看清楚AH3:AI3的數據                                       
AH3有數據 , 但是AI3卻是空白的                                       
別忘了5月份是買2筆                                       
但卻只配1筆息,請問另一筆息在哪裡???                                       
因為良師的程式是階梯式的方式                                       
只要遇到當月份同時有2筆以上登入會出錯                                       
是程式錯誤的地方你是否注意到呢?                                       
程式不能單單A3對AH3 , A4對AI4 , A5對AJ5                                       
這對每月只買1筆適用,如果每月買多筆是錯誤的                                       
不是嗎?良師明白否?
再附檔試看看辛苦囉!謝謝再三!!

LeoV78.gif (239.11 KB)

LeoV78.gif

LeoV78-2C.rar (16.01 KB)

TOP

回復 16# myleoyes
  1. Sub Ex()
  2.     Dim C As Integer, i As Integer, R As Integer
  3.     C = [AH1].Column
  4.     R = Cells(Rows.Count, [AH1].Column).End(xlUp).Row + 1
  5.     If R < 3 Then R = 3
  6.     i = 3
  7.     Do While IsDate(Cells(i, "B")) And Cells(i, "B") < Cells(R, "Z")
  8.         If Cells(i, "B") < Cells(R, "Z") Then
  9.             Cells(1, C) = "=SUM(R3C:R200C)"
  10.             Cells(2, C) = "=R" & i & "C1&""筆"""
  11.             Cells(R, C) = "=ROUND(r" & i & "c6 *" & [M3] & ",2)"
  12.             C = C + 1
  13.             i = i + 1
  14.         End If
  15.     Loop
  16. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 17# GBKEE
良師! 非常的謝謝!!
        程式對囉!但卻遺漏 0筆的狀況
                Cells(R, C) = "=ROUND(r" & i & "c6 *" & [M3] & ",2)" 此列
        修改如下
               If Cells(2, C) <> "0筆" Then  Cells(R, C) = "=ROUND(r" & i & "c6 *" & [M3] & ",2)"
         即可真是辛苦你囉!!小弟由衷感激....盡在不言中
              在此誠摯的祝福..... 您與各大版主及各位前輩們!
                                                 新年快樂!!
                一馬當先  躍望一整年.....   感謝大家的教導讓小弟不斷的成長
              謝謝再三!!

TOP

回復 17# GBKEE
良師!
    這程式有誤??
    請修改A3不能贖回的問題
    當A3為零時程式喪失判別能力
    無法繼續寫入資料
    如動畫上圖狀態
    辛苦囉!謝謝再三!!

LeoV78-3.gif (698.9 KB)

LeoV78-3.gif

LeoV78-3.rar (11.86 KB)

TOP

本帖最後由 yen956 於 2014-3-22 15:15 編輯

回復 19# myleoyes
試試看:
  1. Sub 建立日期比對表()
  2.     Dim i As Integer
  3.     Sheets("Sheet1").Activate
  4.    
  5.     '根據 [B3], 填入連續9個月的 結算日期 到 欄Z
  6.     '並填入連續9個月的 年月 到 欄Y, 供 [Y2] Match 年月 用
  7.     '因為某些月份超過1筆, 且同月份須寫在同一列, 故用 MATCH 比對是否同一月份的資料
  8.     '請修改 For i = 1 To 9 之 9, 如果預計要要建立連續 12個月的資料, 則改為 12
  9.     For i = 1 To 9
  10.         Cells(i + 2, 26) = DateSerial(Year([B3]), Month([B3]) + i, 1) - 1
  11.         Cells(i + 2, 25) = Year(Cells(i + 2, 26)) - 1911 & Month(Cells(i + 2, 26))
  12.     Next i
  13. End Sub

  14. Sub Exyen()
  15.     Dim Rng, chkRng As Range
  16.     Dim i, endRow, endRow2, blankRow As Integer
  17.     endRow = [A2000].End(xlUp).Row
  18.     [AH1].Resize(200, 40) = ""
  19.     [Y3].Resize(200, 2) = ""
  20.     建立日期比對表
  21.     endRow2 = [Y200].End(xlUp).Row
  22.    
  23.     Sheets("Sheet1").Activate
  24.     [M3] = 0.0254                 '此列 "借用" M$3是個變數並非固定值
  25.     blankRow = 3
  26.     oldRow = 3
  27.     Application.Calculation = xlManual
  28.    
  29.     For i = 3 To endRow
  30.    
  31.         '若 Cells(2, i + 31)<>"", 則這筆資料己結算過, 換下一筆
  32.         If Cells(2, i + 31) <> "" Then GoTo next1:
  33.         
  34.         '否則將 編號 寫入 Cells(2, i + 31)
  35.         Cells(2, i + 31) = Cells(i, 1)
  36.         
  37.         '將 目前這一筆 欄B 之 年月放入 [Y1], 供 [Y2] Match 比對年月 用
  38.         [Y1] = Year(Cells(i, 2)) - 1911 & Month(Cells(i, 2))
  39.         
  40.         '因為某些月份超過1筆, 且同月份須寫在同一列, 故用 MATCH 比對是否同一月份的資料
  41.         [Y2] = "=MATCH(Y1,Y3:Y200,0)"
  42.         
  43.         blankRow = [Y2] + 2
  44.         If Cells(i, 1) <> 0 Then
  45.             Range(Cells(blankRow, i + 31), Cells(endRow2, i + 31)) = "=ROUND($F$" & i & "*$M$3,2)"
  46.         Else
  47.             Range(Cells(blankRow, i + 31), Cells(i, i + 31)) = "=ROUND($F$" & i & "*$M$3,2)"
  48.         End If
  49.         Cells(1, i + 31) = "=SUM(R3C" & i + 31 & ":R200C" & i + 31 & ")"
  50. next1:
  51.      Next
  52.      Application.Calculation = xlAutomatic
  53. End Sub
複製代碼

TOP

        靜思自在 : 能幹不幹,不如苦幹實幹。
返回列表 上一主題