¦p¦ó¶¡±µ§ì¨ú¨ä¥¦Àɮתº¸ê®Æ¡H
³o¬O¤@Ӥ뵲 ¶}µo²¼ªºµ{¦¡ Âú§Î ¡]¤@¨Ç¤£¾A¦Xªº¸ê®Æ§Ú³£¥ý®³±¼¤F¡A¤£°Q½×¾Aªk©Êªº°ÝÃD¡^
¦]¬°«È¤H³£¬Oñ±b¤ëµ²¡A©Ò¥H¨CӤ몺¤ë©³³£nªá«Üªøªº®É¶¡¶}µo²¼¡A§Ú·QÅý³oÓµ{§Ç§ó§Ö¡A©Ò¥HµÛ¤â¥Î excel ¨Ó³B²z
¤@¡B¦]¬°¤ëµ²ªº©ú²Ó¬O±q erp §ì¥X¨Ó¡]§O¥s§Ú¥Î ERP ¶}µo²¼¡A§Úª¾¹D erp ¦³¶}µo²¼¥\¯à¡A¦ý¬O«Ü¦h¾ú¥vI´º¦]¯À¡A¥Îerp ªº¬[ºcµLªk¹F¨ì§Únªº¥Øªº¡^
¤ë©³§Ú·|±q erp ¶×¥X ¡y_r_©ú²Ó_1060325.xls¡z ³o¼Ëªº©ú²ÓÀÉ®×
¦]¬°ÀɦW¤£¤@P¡]¨CӤ몺¶×¥X¸ê®ÆÀɦW¤£¤@¼Ë¡^¡A©Ò¥H§Ú¦b ¥Dµ{¦¡ªº °ò¥»¸ê®Æ sheet ¡A°µ¤F¤@Ó«öÁä¡A¥Î¨Ó¨ú±o/³]©w ©ú²ÓªºÀɮצWºÙ¡C
¤G¡B¸g¹Lªø®É¶¡ªº§V¤O¡A§Ú©w¸q¤F¨âÓ¦WºÙ¨Ó¨ó§U¨ú±o©ú²ÓÀɪº¸ê®Æ¡]¤£°Q½×³o¨â¦WºÙ¦nÃa¡A³o¤w¸g¬O§Y¦³¬[ºc¤Uªºµ²ªG¤F¡A¾ãÓµ{¦¡ªº³£¤w¸g§¹¦¨¡A¥Ø«e¥u¬On¥[±j«oµL¸ô¥i¨«¡^
DT_AA =INDIRECT(°ò¥»¸ê®Æ!$B$16&°ò¥»¸ê®Æ!$B$17&"!$E:$E",1)
DT_LST =OFFSET(INDIRECT(°ò¥»¸ê®Æ!$B$16&°ò¥»¸ê®Æ!$B$17&"!$B$1",1),MATCH(pºâ¾÷!$A$1,DT_AA)-COUNTIF(DT_AA,pºâ¾÷!$A$1),,COUNTIF(DT_AA,pºâ¾÷!$A$1),)
¦bsheets(pºâ¾÷)ªº A1 =«È¤áªº½s¸¹
¦bsheets(pºâ¾÷)ªº A17 =COUNTIF(DT_AA,$A$1) pºâ¥X©ú²Ó¤¤¡A«ü©wªº«È¤á¦³´X±ø©ú²Ó
¦bsheets(pºâ¾÷)ªº B17 =MATCH($A$1,DT_AA,1) pºâ¥X©ú²Ó¤¤¡A«ü©wªº«È¤á®M²Ó®M«á¤@¦æ¦b²Ä´X¦æ
¦bsheets(pºâ¾÷)ªº P1 = °Ñ¦Ò¤é´Á¡C
³o¬Opºâ¾÷¤W±ªº¥|Ó¥DnÅܼÆ
¡]¤Wzªº¬[ºc¤w¸g©w¤F¡A«ÜÃøקï¡^
¦b ThisWorkBook ¤¤
Private Sub Workbook_Open()
'-------------------------------------------------------------
'³]©w§Ö³tÁä https://msdn.microsoft.com/zh-tw/library/office/ff197461.aspx
Application.OnKey "%1", "SheetMove" alt+1
SheetMove©w¸q¦b Macro2¤§¤¤
°õ¦æ¥Dµ{¦¡¡A¥¨¶°·|±N«ü©wªº©ú²ÓÀÉ ¦P¨B¶}±Ò¡C
¤T¡B²³æÁ¿¡A´N¬O§Q¥Î alt+1 ¦b¡y¤ëµ²¸ê®Æ¡z->¡ypºâ¾÷¡z->¡y¤TÁp¸ê®Æ¡z->¡y¤ëµ²¸ê®Æ¡z¡A°µloop ¤Á´«ªº°Ê§@¡C
±q¤ëµ²¸ê®Æ¡A±Nn³B²zªº«È¤á¸ê°T copy ¨ì pºâ¾÷
¦bpºâ¾÷±N¸ê®Æºâ§¹¤§«á¡A¦A copy ¨ì¤TÁp¸ê®Æ
³Ì«á¦A±q¤TÁp¸ê®Æ¦^¨ì¤ëµ²¸ê®Æ
«´_¤Wz¡Aª½¨ì±N©Ò¦³¤ëµ²¸ê®Æ³B²z§¹¡C
¦bSub setup_cal() ¤§¤¤¡A¤@¶}©l¡A§Ú¥Î
Sheets("pºâ¾÷").[p1] = Sheets("pºâ¾÷").[p1] + 3 '²£¥Í¥X³f¤é´£¥Ü
If Sheets("pºâ¾÷").[p1] > 22 Then
Sheets("pºâ¾÷").[p1] = 1
End If
²£¥Í¤@Ó 1 4 7 10 13...22 1 ... ªº¡y¤é´Á´£¥Ü¡z¡A¨ó§U¶}µo²¼ªº¤H¡A¨M©wµo²¼n¶}¦b¨º¤@¤Ñ
ex: ´£¥Ü 10¡A¨º´N¬O³]¥h§ä °â³f©ú²Ó¡A³Ì±µªñ 10¤éªº ¤é´Á¡A°µ¬°µo²¼ªº¤é´Á¡C
²{¦b§Ú·QÅý³oÓµ{§Ç¡y¦Û°Ê¤Æ¡z¤]´N¬OÅý setup_cal() ¯à°÷¦Û°Ê§ì¥X³Ì±µªñªº¤é¤l¡A¤£n¦A¸g¹L¤H¤u§PÂ_
¥|¡B§Ú¬O¯uªº¦³¤ÀªR¡A¥u¬O¤@¹ê§@¤U¥h´N¥d¦b¨º°Ê¼u¤£±o
pseudo code()
Sheets("pºâ¾÷").[p1]+ Sheets("°ò¥»¸ê®Æ").Range("f8").value = ¡y´£¥Ü¤é´Á¡z '²£¥Í´£¥Üªº¤é´Á
for (i= 0~©ú²ÓÁ`¼Æ¡^{ //§ä¥X³Ì±µªñªº¨âÓ¤é´Á
if( ¥X³f¤é(i) >¡y´£¥Ü¤é´Á¡z) ¼È¦s¤éu= ¥X³f¤é(i)
else ( ¥X³f¤é(i) <¡y´£¥Ü¤é´Á¡z) ¼È¦s¤éd= ¥X³f¤é(i); i=©ú²ÓÁ`¼Æ; break;
}
if (¼È¦s¤éu - ¡y´£¥Ü¤é´Á¡z) > (¡y´£¥Ü¤é´Á¡z- ¼È¦s¤éd ) ¼È¦s¤é =¼È¦s¤éd ¡]¼È¦s¤éd ¸û±µªñ¡y´£¥Ü¤é´Á¡z)
else ¼È¦s¤é =¼È¦s¤éu //¨M©w¤é´Á
¦ý¬O vba ¹ê»Ú¼g°_¨Ó´N¤£¬O³o»ò¤@¦^¨Æ
Q1
ex:
¦bsheets(pºâ¾÷)ªº A17 =COUNTIF(DT_AA,$A$1)=COUNTIF(INDIRECT(°ò¥»¸ê®Æ!$B$16&°ò¥»¸ê®Æ!$B$17&"!$E:$E",1),$A$1)
¦bsheets(pºâ¾÷)ªº B17 =MATCH($A$1,DT_AA,1)=MATCH($A$1,INDIRECT(°ò¥»¸ê®Æ!$B$16&°ò¥»¸ê®Æ!$B$17&"!$E:$E",1),1)
§Ún¦b vba ª½±µcall COUNTIF(INDIRECT(°ò¥»¸ê®Æ!$B$16&°ò¥»¸ê®Æ!$B$17&"!$E:$E",1),$A$1)
MATCH($A$1,INDIRECT(°ò¥»¸ê®Æ!$B$16&°ò¥»¸ê®Æ!$B$17&"!$E:$E",1),1)
¥¢±Ñ¡A½Ð«ü±Ð
Q2
¦b for loop ¤¤¡A§Ún§ì¥X Sheets("°ò¥»¸ê®Æ").[b16] ³oÓÀÉ®× ªº Sheets("°ò¥»¸ê®Æ").[b17] ³o¤@sheet ªº ¬Y¤@¦æªº²Ä¤GÓ¸ê®Æ
ex:
Date_tmp_str = Index(Sheets("°ò¥»¸ê®Æ").[b16] & Sheets("°ò¥»¸ê®Æ").[b17], 2, date_index - date_index_cnt)
Date_tmp_str=index([_r_°â³f©ú²Ó_20170405.xls]Sheet4!$B:$B,7,1)
Date_tmp_str = Sheets("°ò¥»¸ê®Æ").[b16] & Sheets("°ò¥»¸ê®Æ").[b17] & "!B:B"
Date_tmp_str = Index(Sheets("°ò¥»¸ê®Æ").[b16] & Sheets("°ò¥»¸ê®Æ").[b17], 2, date_index - date_index_cnt)
Date_tmp_str = Sheets("°ò¥»¸ê®Æ").[b16] & Sheets("°ò¥»¸ê®Æ").[b17] & "!B" & date_index - date_index_cnt
¡A½Ð±Ð±Ð¡A¨ì©³¸Ó«ç»ò¼g¡H §Ú¬d¨ìªº¦ü¥G³£¬O§ì¦P¤@ÓÀɮפU¡A¤£¦Psheet ªº¤è¦¡¡A§Ú²{¦bn§ìªº¸ê®Æ¡A¬O¦b¯S©wÄæ¦ì¡A©Ò«ü©wªºÀɮסB¬¡¶¤U¡C
§Ú¤£ª¾¹D«ç»ò±q VBA §ì©ú²ÓÀɪº¸ê®Æ¡A¤U¤@¨B´N¨«¤£¤U¥h¤F
½Ð«ü±Ð¡AÁÂÁÂ~~
¡°¤U¸üÀɮסA¶}±Ò¡A¾Þ§@¤@¤U ALT+1 ¤ñ¸û®e©ö²z¸Ñ
·s¼W¸ê®Æ§¨.zip (50.64 KB)
|