[算表] 用VBA語法寫SUMIF函數

看板Office作者 (融兒)時間10年前 (2014/06/14 22:53), 編輯推噓0(0042)
留言42則, 2人參與, 最新討論串1/1
軟體: excel 版本: 2007、2010 我有一個編輯用表 : http://ppt.cc/n~~y 還有一個進貨數量表 : http://ppt.cc/OSH- 因為每天都需要把進貨數量KEY進編輯用表裡 但進貨數量表每天都會有新的一份, 且數量會增增減減,項目也會不定期增加、減少 同一個貨品進貨的數量可能分成兩筆或兩筆以上的項目 要每天一個一個輸入實在太花時間了 目前是每天用SUMIF函數在統計 但每天也還是要花一小時左右處理 還是希望可以用VBA語法寫SUMIF函數 不過不曉得該怎麼寫QQ 不曉得有沒有人可以幫幫忙 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.28.195 ※ 文章網址: http://www.ptt.cc/bbs/Office/M.1402757584.A.6C8.html

06/14 23:23, , 1F
想到的是用Application.Evaluate試試
06/14 23:23, 1F

06/14 23:26, , 2F
http://goo.gl/dAi9kH 檔案,測試時也請將
06/14 23:26, 2F

06/14 23:26, , 3F
進貨數量_140529.xlsx 開啟
06/14 23:26, 3F

06/14 23:50, , 4F
如果進貨數量表內有編輯表內沒有的品項會有影響嗎?!
06/14 23:50, 4F

06/14 23:50, , 5F
目前測試好像不會有影響XD
06/14 23:50, 5F

06/14 23:52, , 6F
另外想請問在編輯用表內想讓他自動更新可否用快速鍵?!
06/14 23:52, 6F

06/14 23:55, , 7F
可按alt+f8,選項來設定巨集的快速鍵
06/14 23:55, 7F

06/14 23:57, , 8F
了解!感謝!
06/14 23:57, 8F

06/14 23:57, , 9F
如果編輯用表有test1的表格(格式同test),只是品項不同
06/14 23:57, 9F

06/14 23:58, , 10F
,這種情況要怎麼修改VBA語法讓他適用呢?!
06/14 23:58, 10F

06/15 00:00, , 11F
我嘗試複製原本的VBA語法,直接貼在下方,把test改成
06/15 00:00, 11F

06/15 00:00, , 12F
test1就可以了XD 如果sheet的數量太多會不會影響執行
06/15 00:00, 12F

06/15 00:01, , 13F
程序的速度呢?!(假設sheet到test10之類的)
06/15 00:01, 13F

06/15 00:04, , 14F
請將Sheets("test").刪掉,就會以開啟的sheet來run,應該比
06/15 00:04, 14F

06/15 00:05, , 15F
較好;因為寫入只是資料而沒有公式運算覺得應是不會影響執
06/15 00:05, 15F

06/15 00:05, , 16F
行的效能
06/15 00:05, 16F

06/15 00:11, , 17F
真是太感謝S大了!! 幫了一個大忙^^
06/15 00:11, 17F

06/15 00:13, , 18F
^^
06/15 00:13, 18F

06/15 00:20, , 19F
出現問題了XD 實際套用到我正在使用的表格後他沒辦法
06/15 00:20, 19F

06/15 00:20, , 20F
正常執行@@~ sheet名稱非test會有影響嗎?!
06/15 00:20, 20F

06/15 00:22, , 21F
和sheet名稱比較沒有關係,和儲存格的位置,要參照的檔案會
06/15 00:22, 21F

06/15 00:22, , 22F
比較有關係
06/15 00:22, 22F

06/15 00:23, , 23F
編輯用表格式都一樣,只有圖番不同
06/15 00:23, 23F

06/15 00:24, , 24F
進貨數量格式也都一樣,只是多了D到O欄位
06/15 00:24, 24F

06/15 00:24, , 25F
也和參照的檔案內的工作表名有關,原本設定的是[進貨數量_1
06/15 00:24, 25F

06/15 00:24, , 26F
40529.xlsx]Sheet1
06/15 00:24, 26F

06/15 00:24, , 27F
工作表名我有更改了!
06/15 00:24, 27F

06/15 00:26, , 28F
如果是多D到O的話那請看一下DateRng的範圍
06/15 00:26, 28F

06/15 00:27, , 29F
D到O基本上不會用到@@~DateRng要怎麼改才會正常呢~?
06/15 00:27, 29F

06/15 00:29, , 30F
[C2]為date的最左邊的儲存格,Cells(2, Columns.Count).End(
06/15 00:29, 30F

06/15 00:29, , 31F
1)要取最右邊的儲存格
06/15 00:29, 31F

06/15 00:30, , 32F
因此要修改[C2]這個,如果不是第二列時再修要取右邊的那部
06/15 00:30, 32F

06/15 00:30, , 33F
06/15 00:30, 33F

06/15 00:34, , 34F
有點不太懂@@~剛剛試著把C2改成O2但他只執行了1個sheet
06/15 00:34, 34F

06/15 00:34, , 35F
跑出來的結果也是怪怪的@@~
06/15 00:34, 35F

06/15 00:36, , 36F
要同時執行檔案內的全部sheet嗎?覺得還是提供新檔案的格式
06/15 00:36, 36F

06/15 00:37, , 37F
這樣也會比較清楚
06/15 00:37, 37F

06/15 00:38, , 38F

06/15 00:39, , 39F
再麻煩S大了!
06/15 00:39, 39F

06/15 01:13, , 40F
06/15 01:13, 40F

06/15 01:33, , 41F
看起來沒問題!!! 感謝S大!!
06/15 01:33, 41F

06/15 01:36, , 42F
^^
06/15 01:36, 42F
文章代碼(AID): #1Jd67GR8 (Office)