檢視 Excel VBA/兼代課鐘點費分析 的原始碼
←
Excel VBA/兼代課鐘點費分析
前往:
導覽
,
搜尋
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您請求的操作只有這個群組的使用者能使用:
使用者
您可以檢視並複製此頁面的原始碼。
Sub Replace6by7() ' 社團週,把班週會改為社團活動 ' 正確的資料結構很重要,本程式會檢查資料旳結構的合理性 ' 以2017年10月30日(一)至12月1日(五)而言,共跨5週,分別為第10-14週 ' 其中第10,11,13週為社團週 ' 每班在調代課系統的課表中,在此3週的每一週必各有一節社團活動課,和一節班週會課。 ' 然而,實際上課情況不同於調代課系統中的課表。在社團週,實際上課會把班週會的課,會用來上社團課。 ' 而形成連上兩節社團課。 ' 反之,在班週會週,就會連上兩節班週會。 ' 輸入資料必須經過適當排列,排列順序為 ' 1) 班級 由小到大 ' 2) 週次 由小到大 ' 3) 星期 由小到大 ' 4) 節次 由大到小,因為社團在第7節,而班週會在第6節 Dim sht1 As Worksheet Dim rng1 As Range Dim i As Integer Dim strClass As String Dim strWeek As String Dim strDay As String Dim strPeriod As String Const conClass = 9 Const conWeek = 6 Const conDay = 7 Const conPeriod = 8 Dim nDay As Integer Dim nWeek As Integer Dim nClass As Integer ScreenUpdating = False Set sht1 = Worksheets("第101113週") Set rng1 = sht1.Range("A2") i = 0 nClass = 0 Do Until rng1.Offset(i, 0).Value = "" strClass = rng1.Offset(i, conClass).Value nWeek = 0 Do Until (strClass <> rng1.Offset(i, conClass).Value) Or (rng1.Offset(i, 0).Value = "") strWeek = rng1.Offset(i, conWeek).Value nDay = 0 Do Until strWeek <> rng1.Offset(i, conWeek).Value Or _ (strClass <> rng1.Offset(i, conClass).Value) Or (rng1.Offset(i, 0).Value = "") strDay = rng1.Offset(i, conDay).Value Do Until (strDay <> rng1.Offset(i, conDay).Value) Or (strWeek <> rng1.Offset(i, conWeek).Value) Or _ (strClass <> rng1.Offset(i, conClass).Value) Or (rng1.Offset(i, 0).Value = "") strPeriod = rng1.Offset(i + 1, conPeriod).Value Range(rng1.Offset(i, 1), rng1.Offset(i, 1).End(xlToRight)).Select Selection.Copy rng1.Offset(i + 1, 1).Select ActiveSheet.Paste rng1.Offset(i + 1, conPeriod).Value = strPeriod ' 跳一列 i = i + 2 Loop strDay = rng1.Offset(i, conDay).Value nDay = nDay + 1 Loop If nDay <> 1 Then MsgBox ("nDay error=" & nDay) End If strWeek = rng1.Offset(i, conWeek).Value nWeek = nWeek + 1 Loop If nWeek <> 3 Then MsgBox ("nWeek error=" & nWeek) End If strClass = rng1.Offset(i, conClass).Value nClass = nClass + 1 Loop MsgBox ("nClass =" & nClass) MsgBox ("Total records=" & i) ScreenUpdating = True End Sub Sub Replace7by6() ' 班週會週,把社團活動改為班週會 ' 正確的資料結構很重要,本程式會檢查資料旳結構的合理性 ' 以2017年10月30日(一)至12月1日(五)而言,共跨5週,分別為第10-14週 ' 其中第12,14週為社團週 ' 每班在調代課系統的課表中,在此2週的每一週必各有一節社團活動課,和一節班週會課。 ' 然而,實際上課情況不同於調代課系統中的課表。在班週會週,實際上課會把社團的課,會用來上班週會。 ' 而形成連上兩節班週會課。 ' 反之,在社團週,就會連上兩節社團課。 ' 輸入資料必須經過適當排列,排列順序為 ' 1) 班級 由小到大 ' 2) 週次 由小到大 ' 3) 星期 由小到大 ' 4) 節次 由小到大,因為社團在第6節,而班週會在第7節 Dim sht1 As Worksheet Dim rng1 As Range Dim i As Integer Dim strClass As String Dim strWeek As String Dim strDay As String Dim strPeriod As String Const conClass = 9 Const conWeek = 6 Const conDay = 7 Const conPeriod = 8 Dim nDay As Integer Dim nWeek As Integer Dim nClass As Integer ScreenUpdating = False Set sht1 = Worksheets("第1214週") Set rng1 = sht1.Range("A2") i = 0 nClass = 0 Do Until rng1.Offset(i, 0).Value = "" strClass = rng1.Offset(i, conClass).Value nWeek = 0 Do Until (strClass <> rng1.Offset(i, conClass).Value) Or (rng1.Offset(i, 0).Value = "") strWeek = rng1.Offset(i, conWeek).Value nDay = 0 Do Until strWeek <> rng1.Offset(i, conWeek).Value Or _ (strClass <> rng1.Offset(i, conClass).Value) Or (rng1.Offset(i, 0).Value = "") strDay = rng1.Offset(i, conDay).Value Do Until (strDay <> rng1.Offset(i, conDay).Value) Or (strWeek <> rng1.Offset(i, conWeek).Value) Or _ (strClass <> rng1.Offset(i, conClass).Value) Or (rng1.Offset(i, 0).Value = "") strPeriod = rng1.Offset(i + 1, conPeriod).Value Range(rng1.Offset(i, 1), rng1.Offset(i, 1).End(xlToRight)).Select Selection.Copy rng1.Offset(i + 1, 1).Select ActiveSheet.Paste rng1.Offset(i + 1, conPeriod).Value = strPeriod ' 跳一列 i = i + 2 Loop strDay = rng1.Offset(i, conDay).Value nDay = nDay + 1 Loop If nDay <> 1 Then MsgBox ("nDay error=" & nDay) End If strWeek = rng1.Offset(i, conWeek).Value nWeek = nWeek + 1 Loop If nWeek <> 3 Then MsgBox ("nWeek error=" & nWeek) End If strClass = rng1.Offset(i, conClass).Value nClass = nClass + 1 Loop MsgBox ("nClass =" & nClass) MsgBox ("Total records=" & i) ScreenUpdating = True End Sub Sub AjustClass() ' 將社團週和班週會週調整過的資料寫回原始資料 ' 本程式輸入兩個表,更新一個表 ' 輸入一:社團週 ' 輸入二:班週會週 ' 更新:明細 ' 更新之明細表必須經過適當排列,排列順序為「編號」由小到大 ' 輸入一、二表之編號,可用來作為更新表之列的 Offset Dim sht1 As Worksheet Dim sht2 As Worksheet Dim shtU As Worksheet Dim rng1 As Range Dim rng2 As Range Dim rngU As Range Const conPeriod = 8 ScreenUpdating = False Set sht1 = Worksheets("第101113週") '社團週 ' Set sht2 = Worksheets("第1214週") '班週會週 Set shtU = Worksheets("明細") '明細 Set rng1 = sht1.Range("A2") Set rngU = shtU.Range("A2") i = 0 Do Until rng1.Offset(i, 0).Value = "" If rng1.Offset(i, conPeriod).Value = 6 Then sht1.Range(rng1.Offset(i, 1), rng1.Offset(i, 1).End(xlToRight)).Select Selection.Copy shtU.rngU.Offset(sht1.rng1.Offset(i, 0), 1).Select ActiveSheet.Paste End If i = i + 1 Loop MsgBox ("nClass =" & nClass) MsgBox ("Total records=" & i) ScreenUpdating = True End Sub
返回至
Excel VBA/兼代課鐘點費分析
。
導覽選單
個人工具
登入
命名空間
頁面
討論
變體
檢視
閱讀
檢視原始碼
檢視歷史
更多
搜尋
導覽
首頁
自立:本站的主題
(健康|教育|就業|家庭儲藏|財務|靈性力量)
熱門連結
Zoom
竹北教堂福音研習班
Google 翻譯
Yahoo字典
Yahoo字典文法標示
英文標點符號
摩爾門經的故事(英文)
來跟從我-舊約
Come, Follow Me - Old Testament
中文聖經(舊約和新約)
英文聖經(舊約)
HSLTeacher
Yu's English
台灣測驗中心工具
Sentence clause structure
英文五大句型
介詞
EnglishConnect
落實福音生活
數獨自動解題教材
秤12顆球教材
兩羊一車
英打練習
新科技-福音與英文
福音與英文FB
Quizlet操作訓練影片
特別收藏-英中對照
總會大會-英中對照
來跟從我-英中對照
利阿賀拿-英中對照
鞏固青年-英中對照
朋友-英中對照
ELA(KhanAcademy)-英中對照
摩爾門經的故事
英文初學者教法
費波那契精熟法
經文與福音原則
福音進修班簡報檔
312 專案:鞏固家庭
家譜
家庭資源(中文)
家庭資源(英文)
調校中文語文
福音與英文讀書會各平台
福音與英文讀書會
Facebook社團
青少年追求卓越各平台
Facebook社團
Google部落格
Google協作平台
本站主要贊助者
心克剛共學網 Wiki
心克剛共學網 Site
心克剛共學網 FB
心克剛共學網 Blogger
心克剛共學網班級
新生作業流程
HSL20A0
HSL20C2
HSL20D3
HSL20E4
HSL20G6
HSL20H7
均一教育平台
Khan Academy
Scratch
GeoGebra
Wolfram Alpha
Google App
教練備忘
每週精選
黑狗的家
高中數學學科中心
常用工具
英語文
英文初學者教材
本站志工團隊
尤黎明(本站管理者)
蕭昶欣(本站管理者)
江東愷(本站管理者)
張曦云(本站管理者)
張騉翔(本站管理者)
廖瑞鳳(家譜)
陳惠芳(簡報檔)
鄔采家(簡報檔)
林蓁蓁(簡報檔)
劉宇森(Quizlet)
周語晟(Quizlet)
黃翰洋(Quizlet)
王金鳳(Quizlet)
梁述芬(福音與英文)
鄧毓軒(福音與英文)
黃寶儀(福音與英文)
施宥均(福音與英文)
林孟毅(福音與英文)
林志豪(福音與英文)
郭怡君(福音與英文)
許若亞(福音與英文)
黃憶嵐(福音與英文)
張美紅(福音與英文)
曾文典(福音與英文)
相關法規
教育法規
國中教育會考
學科能力測驗
高中英文參考詞彙表
工具
連結至此的頁面
相關變更
特殊頁面
頁面資訊