[算表] excel 複製移動sheet問題

看板Office作者 (玉米)時間10年前 (2015/09/04 20:59), 10年前編輯推噓0(0017)
留言17則, 2人參與, 最新討論串1/1
軟體:excel 版本:2007/2010 大大好,現在有幾個問題 一天分三班所以建立一個月的表就會出現1A、1B、1C、2A、2B....的sheet ----1---- 1A A B C 1 本班分數 上班分數 差數 2 200 100 A2-B2 1B A B C 1 本班分數 上班分數 差數 2 '1A'!A2 A2-B2 但是新增1C的時候 希望 A B C 1 本班分數 上班分數 差數 2 '1B'!A2 A2-B2 實際 A B C 1 本班分數 上班分數 差數 2 '1A'!A2 A2-B2 因為excel裡面需要參照前一個sheet的部分很多 如果每次新增一個sheet我現在只會把所有需要參照的部分重新修改 有沒有辦法在新增1C儲存格裡的值就會自己去找'1B'!A2新增2A去找'1C'!A2 ? ----2---- 最前面會建立一個目錄做超連結進每個sheet 並且在每班的sheet裡面做超連結回目錄 但是複製sheet之後,1A會回目錄,1B則會跑到1A 怎麼樣才能讓每個sheet按"回目錄"都可以回目錄? ----3---- 月份格式 A B C D E F G H I J K L M N O P Q R 1 1 | 2 | 3 | 4 | 5 | 6 | 2 A| B| C| A| B| C| A| B| C| A| B| C| A| B| C| A| B| C| 3 4 5 6 7 8 9 10 30 11 A| B| C| 12 31 13 A| B| C| 目前在儲存格裡寫函數,如果是小月,31日就不會顯示,但是儲存格格式還在 有辦法讓格式(填滿、合併)都不見嗎? 另外按照問題一的需求,建立好1A、1B之後 有什麼方式可以直接按照當月天數(28、29、30或31天) 建立好1C、2A...、31C(假設當月31天)的sheet並按照班表命名好呢? 雖然沒有人要求我要做到這樣,但是在寫的過程有這樣的想法 只是不知道有哪些關鍵字可以google讓自己達成這樣的目標 明明才剛會寫if,昨天才知道巨集怎麼開(還不會用),就對自己做這麼多要求= = -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.213.161 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1441371596.A.5D4.html

09/04 21:33, , 1F
問題1,因是以工作表名來找前一個工作表名,想到的是函數
09/04 21:33, 1F

09/04 21:35, , 2F
是cell參數filename,取得因也會含路徑和檔名,可用find和
09/04 21:35, 2F

09/04 21:35, , 3F
mid來抓取
09/04 21:35, 3F

09/04 21:37, , 4F
另做一欄輔助欄,資料為1a,1b,1c,2a,....31c,就可以前項
09/04 21:37, 4F

09/04 21:39, , 5F
用index+match的方式取得前一個工作表名,有了前一個工作(
09/04 21:39, 5F

09/04 21:40, , 6F
表名,最後用函數indirect來參照
09/04 21:40, 6F

09/04 21:44, , 7F
問題2,函數方面可試試hyperlink
09/04 21:44, 7F

09/04 21:49, , 8F
問題3,取得當月天數可用eomonth配合day
09/04 21:49, 8F

09/04 21:51, , 9F
接著用if來判斷,或是用格式化條件
09/04 21:51, 9F

09/04 21:56, , 10F
最後一個問題不太了解,建立好1C、2A...、31C的sheet並按
09/04 21:56, 10F

09/04 22:02, , 11F
照班表命名?
09/04 22:02, 11F

09/05 00:24, , 12F
嗯!!感謝!!我這幾天研究看看!!!我怕又是我搞不懂問題XD
09/05 00:24, 12F

09/05 13:50, , 13F
最後一個問題大概是想要看能不能做到直接讓excel跑出一個月
09/05 13:50, 13F

09/05 13:51, , 14F
的表,而不是一個一個複製移動手動產生約90個表
09/05 13:51, 14F

09/05 16:47, , 15F
重覆性、反覆性動作(如一個一個複製移動手動產生)來看,想
09/05 16:47, 15F

09/05 16:47, , 16F
到的就是用巨集協助
09/05 16:47, 16F
感謝so大以及朋友的幫助!! 建立好1A、1B之後,在第一個sheet A列輸入 1A,1B,1C,2A,2B,2C往下拉到31C 接著用巨集自動跑出我要的結果,如下 Sub 複製儲存格() ' ' 複製儲存格 巨集 ' ' After:=Sheets(Sheets.Count) Dim I As Integer For I = 3 To 93 oldtext = ActiveSheet.Name Sheets("1B").Copy after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Sheets(1).Range("A" & I) Cells.Select Selection.Replace What:="1A", Replacement:=oldtext, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Next End Sub 其中sheet名稱改變是參考下文對新增的sheet直接命名 https://www.ptt.cc/bbs/Office/M.1283963262.A.7B2.html //尚未研究出來so大對於第一個問題的方法 //朋友說他用'取代'的方式解決(其實我根本看不懂XD) //然後加上對照上面連結將兩段程式結合後多次測試總算得到結果 感謝so大的各種關鍵字,也將結果放上來 希望能幫到以後有需要的人! ※ 編輯: wym (220.134.213.161), 09/05/2015 22:37:06

09/06 00:01, , 17F
^^
09/06 00:01, 17F
文章代碼(AID): #1LwPNCNK (Office)
文章代碼(AID): #1LwPNCNK (Office)