返回列表 上一主題 發帖

[發問] 誰能幫這幾乎重複動作的VBA瘦身 謝謝

你可以將數據貼上並修改I4及J4日期範圍試試看[結果]工作表運算是否可以符合你預期。
先說附檔並不是用您所期望的方式去修改,運算結果可能也不是你想要的結果,僅供參考...
~test% - TT.zip (123.09 KB)

TOP

回復 27# lcctno


你可以將數據貼上並修改I4及J4日期範圍試試看[結果]工作表運算是否可以符合你預期。
先說附檔並不是用您所期望的方式去修改,運算結果可能也不是你想要的結果,僅供參考...
剛剛28#發的公式只能算到第310列,這是修正檔
~test% - TT2.zip (124.1 KB)

TOP

回復  azrael19

目前有發現個很小的問題 只是我沒能力修改那麼複雜的函數
目前經過數種方式的比對 "da ...
lcctno 發表於 2015-8-28 18:42


試試看...
~test% - TT5.zip (272.72 KB)

TOP

回復  azrael19
感謝您 目前只測試2個不同族群的data 我很高興 結果"完全正確" 您的函數真的太強了

若 ...
lcctno 發表於 2015-8-28 23:14


1.COUNTA是計算範圍中不是空白的儲存格數目,-1就是減掉儲存格A2標題指數(股價)。
2.其實組合公式看不懂時你可以先嘗試著分拆成一小段方式並輸入儲存格看輸出結果就很好理解,例如:
(a)
  公式: =ADDRESS(8,6) 就等於字串 "$F$8"。
  公式: =ADDRESS(8,6,,,"Data") 就等於字串 "Data!$F$8"。
(b)當Data!I6 值是18時:
  公式: =ADDRESS(Data!$I$6,3,,,"Data") 就等於字串 "Data!$C$18"。
  公式: =INDIRECT(ADDRESS(Data!$I$6,3,,,"Data")) 就是參照儲存格 Data!C18。
(c)當Data!I6 值是7,Data!J6值是306
  公式: =OFFSET(INDIRECT(ADDRESS(Data!$I$6,3,,,"Data")),,,Data!$J$6-Data!$I$6+1,)
  就是指向儲存格範圍 Data!C7:C306。
(d)公式中使用到IF函數部分就是針對Data!$I$6或Data!$J$6是空白時的例外處理方式。
3.例如自定名稱資料列_最高價是指向儲存格範圍 Data!C7:C306
  公式: =OFFSET(資料列_最高價,,1,,) 就是指向儲存格範圍 Data!D7:D306

參考資料:
COUNTA
ADDRESS
INDIRECT
OFFSET
評估值公式
自訂名稱

TOP

回復  azrael19
經測試股票 有發現工作頁"Data"內H2之總數有誤
經極小化來檢視 發現您漏了將等於列之值 ...
lcctno 發表於 2015-8-29 09:19


將結果工作表 A4 公式由=A3+Data!$L$4改成=ROUND(A3+Data!$L$4,2)下拉自動填滿公式

TOP

回復  azrael19

看起來很妥當了
我看您要求改的部分 是4捨5入 看起來那些格內值並沒有改變 但為何比對 ...
lcctno 發表於 2015-8-29 11:58


1.浮點數誤差,請參考 https://support.microsoft.com/zh-tw/kb/214118
  所以也可以將 A4公式改成: =TRUNC(A3+Data!$L$4,2),這是您原始檔所使用的方式。
2.其實您所提供的-test% -.zip就會了,這個我也不太知道...
  (可能打開檔案時的運算超過一定數量範圍或是使用到特定功能就會這樣,例如您的原始檔我只要將WebQuery移除就不會問了...)
3.因為使用的儲存格少自然就小,運算少自然等待時間就短。

我不是高手,如果有常在論壇爬文,同時將版主們的回覆親自動手做過一遍就可以很快學到這些技巧,只是用看的大概很快就忘光了...
還有你應該要感謝是前面回覆您問題的前輩,如果一開始就先將公式簡化再來問如何用VBA瘦身,那個運算速度會比我給你的快多了

TOP

回復  azrael19
感謝您的用心 我從沒正式的上過PC相關的課 只為了安心的投資股票
所以才土法煉鋼 用最簡 ...
lcctno 發表於 2015-8-29 14:52


還是不要好了,先說我沒有惡意您看了千萬別誤會
這裡是讓大家學習釣魚的技巧及分享學習經驗,當大家發現你只是想請人幫你釣魚,很快你的問題就得不到任何回覆...
基本上等你有能力看懂前面回覆您問題前輩的程式碼,再提出問題會比較適當。
還有與主題無關的回覆就算灌水,我現在的回覆就算了,所以您千萬別再回覆我

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題