Board logo

標題: [發問] 自動複製多活頁公式並貼上值(文長慎入) [打印本頁]

作者: msmplay    時間: 2016-8-17 23:16     標題: 自動複製多活頁公式並貼上值(文長慎入)

本帖最後由 msmplay 於 2016-8-17 23:18 編輯

[attach]24963[/attach][attach]24964[/attach]

以下條件不知是否可依巨集按鈕達成,可能要麻煩大師們幫忙看看了~~~~~~~提醒文長慎入喔!!!

說明:
1. 檔案裡共有27個活頁,其中21個活頁(反黃)需使用到巨集,其他活頁無需理會。
2. 每日會以人工貼上資料至「系統導出」活頁A:Y欄,再從21個活頁以公式自動統計「系統導出」活頁相關數據。
3. 21個活頁自動統計出數據後,需以人工方式,先將當日公式複製到隔日,再將當日公式貼上值。
4. 前14個顧客數量活頁,每日為由上至下排序;後7個顧客問題活頁,每日為由左至右排序。


舉例1A顧客數量(商品)
今天是8/15,「系統導出」貼上資料後,C20:BI20公式會統計出數據,需先人工複製C20:BI20公式至C21:BI21,再將C20:BI20公式貼上為值。
原因是:如果當日只貼上值未複製公式至隔日,隔天要統計數據時就無統計公式。而如果C:BI欄每日均先寫好公式,檔案內共21個活頁,每個活頁均有35列公式的話,打開或編輯此檔案就會變超慢。

舉例2顧客問題(商品)」:
今天是8/15,「系統導出」貼上資料後,AK4:AK177公式會統計出數據,需先人工複製AK4:AK177公式至AM4:AM77,再將AK4:AK177公式貼上為值。
特別說明:顧客問題7個活頁的列數,每個活頁均不相同,例如「顧客問題(電腦)」只有AK4:AK6,所以無法像顧客數量14個活頁都一樣欄列,只要全選活頁再一起複製公式跟貼上值就好。


希望達成條件:
每日「系統導出」貼上資料後,只要按下「系統導出」右上方【貼上值】按鈕,即可達成多活頁自動複製公式並貼上值條件。
且需自動判斷當日日期,才能自動複製當日欄列公式至隔日欄列,再將當日公式貼上為值。



以上~~~~~~~~~~因為真的很複雜,也非常需要人工重複作業,才會打這麼落落長,希望大家能體諒!!!!
最後希望~~~~~~~有人能幫幫小妹嗎!?

[attach]24965[/attach]
作者: zyzzyva    時間: 2016-8-18 12:18

您的需求看起來應該錄製巨集再稍做修改就可以了。能不能提供一些系統導出格式的假資料供測試?
作者: voyageellen    時間: 2016-8-18 17:58

請參考看看!!
    [attach]24970[/attach]
作者: msmplay    時間: 2016-8-18 23:21

回復 2# zyzzyva

[attach]24973[/attach]

z大~~~~~已補上系統資料,真的非常非常感謝您的熱心幫忙喔!!!!!

[attach]24974[/attach]


不過請容許小妹先說聲萬分抱歉,就是原本檔案內的公式其實是錯誤的,因為當時純碎想說複製多活頁當日公式並貼上值,此舉與公式內容並無關係
所以就以複製公式貼上各活頁以利測試,因此如果21個活頁公式均需正確抓出數值再接續測試,小妹已將21個活頁公式各別修改完成了!!

再次誠心感謝~~~~~~~
作者: msmplay    時間: 2016-8-18 23:27

回復 3# voyageellen

v大~~~~~首先真的非常謝謝您的熱心相助喔!!
不過請容許小妹先說聲萬分抱歉,就是原本檔案內的公式其實是錯誤的,因為當時純碎想說複製多活頁當日公式並貼上值,此舉與公式內容並無關係
所以就以複製公式貼上各活頁以利測試,因此如果21個活頁公式均需正確抓出數值再接續測試,小妹已將21個活頁公式各別修改完成了!!

所以可以再麻煩您~~~~~~協助幫忙看看嗎??

另已補上系統測試資料喔!!!

[attach]24975[/attach]


[attach]24976[/attach]

作者: 准提部林    時間: 2016-8-19 11:52

使用巨集是為了方便及效率,
相對的, 若是統計不正確, 這種方便會是大問題!

就以公式來說,
COUNTIFS(系統導出!$H:$H,"*"&$B4&"*",系統導出!$S:$S,"*料材*")

"*"&$B4&"*" ? 為何要用"*"前後包覆?
*問題1* 這萬用字元方式其實包含了 問題1, 問題10, 問題11, 問題111 ... 及任何包含"問題1"的條件,
所以, 這公式是有問題?

至於用巨集來複製公式, 因表格中還混雜[小計], 這部份較麻煩, 得再想想~~
作者: zyzzyva    時間: 2016-8-19 12:08

回復 4# msmplay
不知道有沒有誤解您的意思,請測試看看。
[attach]24981[/attach]
作者: zyzzyva    時間: 2016-8-19 13:13

回復 4# msmplay
[attach]24982[/attach]
7F的檔案沒有考慮到小計的問題,請使用這個測試。
作者: 准提部林    時間: 2016-8-19 16:40

給的資料太簡略, 先看公式可不可以再說:
[attach]24983[/attach]
作者: msmplay    時間: 2016-8-19 22:07

回復 9# 准提部林

准大,公式可以~~~~~~~~~不好意思啦!!可能不太會表達
作者: 准提部林    時間: 2016-8-19 22:22

回復 10# msmplay


利用VBA填入[錄製]取得的公式, 再貼成值, 工作表除小計總計欄位外, 不留任何公式:
[attach]24984[/attach]

看一下檔案, A1:A3有變動, 便利于公式在不同且相同需求的工作表的通用性!
另[週小計]欄的[比例]公式, 可套用[總計]欄的公式, 方法:複製→選擇性貼上→公式
作者: msmplay    時間: 2016-8-19 22:33

回復 8# zyzzyva

z大!!真的測試成功了耶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~太厲害了你!!!!!
以後也麻煩多多關照了!!
作者: msmplay    時間: 2016-8-20 00:27

回復 11# 准提部林

准大好貼心~~~~~
作者: msmplay    時間: 2016-10-1 00:55

回復 8# zyzzyva

z大~~~可以請教一下之前您幫忙做的巨集,我套用到公司的報表會發生錯誤訊息,可以再跟您請問一下該如何修改跟原因是什麼呢?非常感謝~~~
[attach]25411[/attach][attach]25412[/attach]


[attach]25413[/attach]
作者: GBKEE    時間: 2016-10-1 06:09

本帖最後由 GBKEE 於 2016-10-1 06:12 編輯

回復 14# msmplay

[attach]25414[/attach]

程式碼要先消化瞭解,就能嘗試化解錯誤
  1. Row = Application.Match(CLng(CDate(Date)), ActiveWorkbook.Worksheets(I).Range("A1:A300"), 0)
複製代碼
Row是 VBA的Row 屬性 關鍵字,盡量不要做為變數的名稱
作者: zyzzyva    時間: 2016-10-1 06:37

本帖最後由 zyzzyva 於 2016-10-1 06:40 編輯

回復 14# msmplay
應該是'E化系統'的問題,因為sheet名稱也是英文開頭。
最簡單是改個名字,不然就是在跑迴圈的時候加限制。
例如For I = 1 To WS_Count,改成For I = 1 To 25 (只跑到 顧客問題(通訊類產品)),不過如果之後有新增或更動順序要再檢查。
或是If (aA >= 65 And aA <= 90) Or (aA >= 97 And aA <= 122) Then這句加個條件讓工作表名稱的開頭不能= "E"。
作者: zyzzyva    時間: 2016-10-1 06:38

回復 15# GBKEE
對耶,寫的時候沒注意,感謝版大的提醒。
作者: zyzzyva    時間: 2016-10-1 06:53

回復 14# msmplay
如果有用到的工作表命名上固定都會是IB、OB,那可以改成 If aA = 73 Or aA = 79 Then (只跑開頭 = "I" 跟 = "O"的)
作者: msmplay    時間: 2016-10-1 12:37

回復 15# GBKEE

G大~~~原來如此丫!!真是感激不盡唷~~~~
作者: msmplay    時間: 2016-10-1 12:38

回復 18# zyzzyva


   z大~~~~謝謝您又再解救了小妹一次呢!!




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