標題:
可否協助簡化程式
[打印本頁]
作者:
周大偉
時間:
2015-6-23 18:41
標題:
可否協助簡化程式
各高人, 好
小弟錄制了一個程式, 使用沒有問題, 但程式頗長, 而使用時介面閃動, 此錄制程式可有簡化空間, 請高人們協助, 謝謝!!
Sub 更新()
'
' 資料更新 巨集
'
'
Windows("abc倉庫資料.xlsm").Activate
Sheets("總公司倉庫").Select
Range("J4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS([提取單.xlsm]提取單!C7,[提取單.xlsm]提取單!C15,RC7,[提取單.xlsm]提取單!C3,RC2)+SUMIFS([提取單.xlsm]提取單!R3C7,[提取單.xlsm]提取單!R3C15,RC[-3],[提取單.xlsm]提取單!R3C3,RC[-8])+SUMIFS([提取單.xlsm]提取單!R3C7,[提取單.xlsm]提取單!R3C15,RC[-3],[提取單.xlsm]提取單!R3C3,RC[-8])"
Range("K4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS([入貨單.xlsm]Sheet1!C8,[入貨單.xlsm]Sheet1!C13,RC7,[入貨單.xlsm]Sheet1!C3,RC2)+SUMIFS([入貨單.xlsm]Sheet1!R3C8,[入貨單.xlsm]Sheet1!R3C13,RC[-4],[入貨單.xlsm]Sheet1!R3C3,RC[-9])"
Range("L4").Select
ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-2]+RC[-1]"
ActiveWorkbook.Save
Range("J4:L4").Select
Selection.AutoFill Destination:=Range("J4:L22"), Type:=xlFillDefault
Range("J4:L22").Select
Range("L22").Select
Sheets("分公司倉庫").Select
Range("J4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS([提取單.xlsm]提取單!C7,[提取單.xlsm]提取單!C15,RC7,[提取單.xlsm]提取單!C3,RC2)+SUMIFS([提取單.xlsm]提取單!R3C7,[提取單.xlsm]提取單!R3C15,RC[-3],[提取單.xlsm]提取單!R3C3,RC[-8])"
Range("K4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS([入貨單.xlsm]Sheet1!C8,[入貨單.xlsm]Sheet1!C13,RC7,[入貨單.xlsm]Sheet1!C3,RC2)+SUMIFS([入貨單.xlsm]Sheet1!R3C8,[入貨單.xlsm]Sheet1!R3C13,RC[-4],[入貨單.xlsm]Sheet1!R3C3,RC[-9])"
Range("L4").Select
ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-2]+RC[-1]"
ActiveWorkbook.Save
Range("J4:L4").Select
Selection.AutoFill Destination:=Range("J4:L22"), Type:=xlFillDefault
Range("J4:L22").Select
Range("L22").Select
Sheets("總公司倉庫").Select
Range("J4:L22").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L4").Select
Application.CutCopyMode = False
Sheets("分公司倉庫").Select
Range("J4:L22").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L4").Select
Application.CutCopyMode = False
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
Windows("提取單.xlsm").Activate
Range("A2").Select
End Sub
作者:
joey0415
時間:
2015-6-23 19:59
回復
1#
周大偉
分段錄制,分段簡化,你會更有成就感
作者:
lpk187
時間:
2015-6-24 08:36
回復
1#
周大偉
版主的這篇可以參考
http://forum.twbts.com/viewthrea ... p%3Bfilter%3Ddigest
作者:
周大偉
時間:
2015-6-24 12:39
本帖最後由 周大偉 於 2015-6-24 12:51 編輯
回復
3#
lpk187
小弟所識有限,上述提及文章也曾參考,但功力太淺,故把此錄制巨集上傳,希望得到回應,最後謝謝提示,祝快樂。 此文手機覆,字體位置偏離,見諒。
作者:
lpk187
時間:
2015-6-24 14:34
回復
4#
周大偉
沒檔案可以試,也不知對不對!
Sub 更新()
'
' 資料更新 巨集
'
'
Windows("abc倉庫資料.xlsm").Activate
Sheets("總公司倉庫").Select
Range("J4") = "=SUMIFS([提取單.xlsm]提取單!C7,[提取單.xlsm]提取單!C15,RC7,[提取單.xlsm]提取單!C3,RC2)+SUMIFS([提取單.xlsm]提取單!R3C7,[提取單.xlsm]提取單!R3C15,RC[-3],[提取單.xlsm]提取單!R3C3,RC[-8])+SUMIFS([提取單.xlsm]提取單!R3C7,[提取單.xlsm]提取單!R3C15,RC[-3],[提取單.xlsm]提取單!R3C3,RC[-8])"
Range("K4") = "=SUMIFS([入貨單.xlsm]Sheet1!C8,[入貨單.xlsm]Sheet1!C13,RC7,[入貨單.xlsm]Sheet1!C3,RC2)+SUMIFS([入貨單.xlsm]Sheet1!R3C8,[入貨單.xlsm]Sheet1!R3C13,RC[-4],[入貨單.xlsm]Sheet1!R3C3,RC[-9])"
Range("L4") = "=RC[-3]-RC[-2]+RC[-1]"
ActiveWorkbook.Save
Range("J4:L4").AutoFill Destination:=Range("J4:L22"), Type:=xlFillDefault
Range("L22").Select
Sheets("分公司倉庫").Select
Range("J4") = "=SUMIFS([提取單.xlsm]提取單!C7,[提取單.xlsm]提取單!C15,RC7,[提取單.xlsm]提取單!C3,RC2)+SUMIFS([提取單.xlsm]提取單!R3C7,[提取單.xlsm]提取單!R3C15,RC[-3],[提取單.xlsm]提取單!R3C3,RC[-8])"
Range("K4") = "=SUMIFS([入貨單.xlsm]Sheet1!C8,[入貨單.xlsm]Sheet1!C13,RC7,[入貨單.xlsm]Sheet1!C3,RC2)+SUMIFS([入貨單.xlsm]Sheet1!R3C8,[入貨單.xlsm]Sheet1!R3C13,RC[-4],[入貨單.xlsm]Sheet1!R3C3,RC[-9])"
Range("L4") = "=RC[-3]-RC[-2]+RC[-1]"
ActiveWorkbook.Save
Range("J4:L4").AutoFill Destination:=Range("J4:L22"), Type:=xlFillDefault
Sheets("總公司倉庫").Select
Range("J4:L22").Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L4").Select
Application.CutCopyMode = False
Sheets("分公司倉庫").Select
Range("J4:L22").Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L4").Select
Application.CutCopyMode = False
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
Windows("提取單.xlsm").Activate
Range("A2").Select
End Sub
複製代碼
作者:
周大偉
時間:
2015-6-24 22:09
回復
5#
lpk187
謝謝回應, 祝願快樂..
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)