欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

VBA實戰(zhàn)指南:玩轉(zhuǎn)Excel教務(wù)掛科統(tǒng)計與自動化報表生成

VBA實戰(zhàn)指南:玩轉(zhuǎn)Excel教務(wù)掛科統(tǒng)計與自動化報表生成 1. 項目背景為什么教務(wù)數(shù)據(jù)要用VBA來處理高校教務(wù)管理里掛科數(shù)據(jù)統(tǒng)計是非常高頻的一項工作。學期末考試結(jié)束各科成績出來教務(wù)員或者輔導員需要回答一系列問題每個班掛了幾科哪個科目掛科率最高哪些學生掛科超過三門需要預(yù)警重修名單怎么生成這些問題看起來簡單但當學生數(shù)量上千、科目幾十門、數(shù)據(jù)分散在多個Excel文件里的時候手工處理就變得極其痛苦。我第一次接到這個需求是在某高校期末階段。對方拿來的原始數(shù)據(jù)是一張全校成績總表大概四千多行每行是一個學生的某一門課程成績字段包括學號、姓名、班級、課程名稱、學分、成績。需求也很直接掛科名單、掛科率統(tǒng)計、分數(shù)段分布、以及預(yù)警名單掛科超過兩門的要單獨列出來。說實話這些需求用Excel自帶的數(shù)據(jù)透視表和篩選功能也能做一部分但涉及到多條判定規(guī)則、跨科目統(tǒng)計、批量格式化和生成多個報表還是VBA更合適。寫這篇博文就是把這套處理掛科數(shù)據(jù)的完整思路和代碼實戰(zhàn)過程拆開來講。從數(shù)據(jù)清洗、掛科判定、按科目統(tǒng)計、按學生聚合、生成預(yù)警名單到最后的報表自動排版每一步都給出可以直接復用的方案。適合輔導員、教務(wù)員、教學秘書以及任何處理過這類考核數(shù)據(jù)的辦公人員參考。如果你只會Excel的基礎(chǔ)操作這篇文章會告訴你VBA處理批量數(shù)據(jù)的基本套路如果你已經(jīng)有點VBA基礎(chǔ)也可以從中找到一些邊界情況處理和代碼組織的方法。2. 項目整體設(shè)計與思路拆解2.1 先搞清楚數(shù)據(jù)長什么樣拿到數(shù)據(jù)的第一步不是寫代碼而是觀察數(shù)據(jù)。我用的是某高校模擬項目X的成績總表字段和真實教務(wù)系統(tǒng)導出的格式基本一致。以下是原始數(shù)據(jù)的一個簡化樣例學號姓名班級課程名稱學分成績20230101張某計科2301高等數(shù)學55820230101張某計科2301大學英語37120230102李某計科2301高等數(shù)學56220230102李某計科2301線性代數(shù)34320230102李某計科2301大學英語355仔細觀察有幾個關(guān)鍵點決定了后續(xù)代碼怎么寫一行為一個學生的一門課成績所以一個學生占用多行數(shù)據(jù)。按學生聚合統(tǒng)計掛科門數(shù)就不能用簡單的篩選而是需要按學號分組。成績字段的格式可能不統(tǒng)一有的單元格是文本類型有的看起來是數(shù)字但其實是缺考或緩考字樣。這種臟數(shù)據(jù)必須先清洗。掛科的判定線和課程學分有關(guān)不同學??赡苡兴煌S械膶W校60分及格有的課程按五級制優(yōu)、良、中、及格、不及格這些都要在寫代碼前問清楚。2.2 方案選型為什么不用公式和透視表在處理這類數(shù)據(jù)時很多人第一反應(yīng)是用COUNTIFS加IF嵌套不就行了。確實如果只需要統(tǒng)計個掛科人數(shù)公式完全可以勝任。但這套需求里有一個場景是公式不太好處理的判斷每個學生掛科是否超過兩門并把超過兩門的學生自動歸入預(yù)警名單。這樣做是可行的但操作相對繁瑣需要在輔助列里拉公式再對結(jié)果做二次篩選。根本的問題在于公式方案是靜態(tài)的。數(shù)據(jù)源一旦更新比如補考成績錄入、緩考學生決定參加考試所有統(tǒng)計結(jié)果都得跟著改輔助列里的公式范圍需要重新調(diào)整生成的報表還得手工重建。VBA方案是動態(tài)的原始數(shù)據(jù)放在Sheet1運行一次宏自動在Sheet2生成掛科名單Sheet3生成科目掛科率統(tǒng)計Sheet4生成預(yù)警名單。下次數(shù)據(jù)更新了再運行一次就行所有流程完全自動化。還有一個原因是邏輯可維護性。把代碼讀一遍就知道成績小于60且不為空算掛科缺考標記為-1也按掛科處理掛科超過2門預(yù)警這些規(guī)則寫在哪里。對后接手的人來說理解一套VBA代碼并修改規(guī)則比在一大堆嵌套公式里翻找要容易得多。2.3 整體處理流程梳理整個方案分成五個階段數(shù)據(jù)清洗、基本校驗、掛科判定與統(tǒng)計、學生維度聚合、報表生成。每個階段相對獨立便于單獨測試和調(diào)試。第一階段規(guī)范成績字段——把文本數(shù)字轉(zhuǎn)成數(shù)值、識別特殊標記、剔除無效行。第二階段檢查有沒有缺失關(guān)鍵字段的行比如學號為空的學生記錄直接跳過。第三階段遍歷所有成績記錄按課程名稱統(tǒng)計考試人數(shù)、掛科人數(shù)、掛科率同時輸出每條掛科記錄到名單表。第四階段再遍歷一次或者復用前面收集的數(shù)據(jù)按學號匯總每個學生的掛科門數(shù)生成預(yù)警名單。第五階段用VBA控制格式設(shè)置邊框、列寬、單元格顏色把掛科率高和預(yù)警級別高的信息突出顯示。3. 核心邏輯與關(guān)鍵代碼實現(xiàn)3.1 字典對象跨行聚合的利器做學生維度的掛科統(tǒng)計時最常用的技巧是使用VBA的Dictionary字典對象。它類似于哈希表可以按學號存儲一個學生的累計掛科門數(shù)。遍歷成績記錄時每遇到一條掛科記錄就在字典里把對應(yīng)學號的計數(shù)加1。最后把需要預(yù)警的學生計數(shù)值大于2輸出到名單表。Dim dict As Object Set dict CreateObject(Scripting.Dictionary) 遍歷成績數(shù)據(jù)統(tǒng)計每個學生掛科數(shù)量 For i 2 To lastRow scoreVal Trim(CStr(ws.Cells(i, 6).Value)) 成績列 stuID Trim(CStr(ws.Cells(i, 1).Value)) 學號列 判斷是否掛科成績?yōu)閿?shù)字且小于60或包含缺考等標記 If IsNumeric(scoreVal) Then If CDbl(scoreVal) 60 Then If dict.Exists(stuID) Then dict(stuID) dict(stuID) 1 Else dict(stuID) 1 End If End If ElseIf InStr(scoreVal, 缺考) 0 Or InStr(scoreVal, 緩考) 0 Then If dict.Exists(stuID) Then dict(stuID) dict(stuID) 1 Else dict(stuID) 1 End If End If Next i這段代碼并不復雜卻解決了最關(guān)鍵的按學生聚合問題。成績總表里同一個學生出現(xiàn)多行如果不想辦法聚合就沒法判斷掛科超過兩門。字典在這種場景下的處理思路值得反復參考。建議在處理學生數(shù)據(jù)時先想清楚需要按哪個維度聚合這個維度是否適合作為字典的Key。3.2 成績數(shù)據(jù)的邊界情況處理成績數(shù)據(jù)遠沒有想象的那么干凈這是我在實際處理中遇到最多坑的地方。真實數(shù)據(jù)里常見的情況包括成績單元格顯示為缺考或緩考。這類情況通常要按掛科處理因為學生沒有成績。成績?yōu)榭盏膯卧?。不能簡單判斷為掛科需要先和對方確認空值含義。在我的模擬項目X數(shù)據(jù)里空值表示該學生本學期沒有選修這門課屬于無效記錄應(yīng)當跳過。成績是文本格式的數(shù)字比如單元格左上角有個綠色小三角。直接比較會導致類型不匹配報錯需要先用IsNumeric判斷。成績包含具體分值但帶備注比如55作弊。這種數(shù)據(jù)格式不統(tǒng)一要么在數(shù)據(jù)源頭規(guī)范要么在代碼里做截取處理。我的建議是在VBA代碼里先做一個數(shù)據(jù)清洗模塊統(tǒng)一處理這些情況。這樣主邏輯里的成績判斷就不用到處處理異常代碼也更清晰。寫一個獨立函數(shù)來判斷這條記錄是否為掛科把所有邊界情況封裝進去Function IsFail(scoreCell As Range) As Boolean Dim raw As String raw Trim(CStr(scoreCell.Value)) 空值不算掛科視為無效記錄 If raw Then IsFail False Exit Function End If 缺考或緩考視為掛科 If InStr(raw, 缺考) 0 Or InStr(raw, 緩考) 0 Then IsFail True Exit Function End If 純數(shù)字小于60算掛科 If IsNumeric(raw) Then IsFail (CDbl(raw) 60) Exit Function End If 其他文本標記按非掛科處理 IsFail False End Function注意掛科判定線60分是我在模擬項目X中使用的規(guī)則。實際部署時這個臨界值應(yīng)該定義成常量或者放在配置單元格里方便不同院系按各自規(guī)則調(diào)整。3.3 按科目的掛科率統(tǒng)計科目維度的統(tǒng)計相對直接遍歷所有成績記錄按課程名稱分組記錄兩個數(shù)字——考試人數(shù)和掛科人數(shù)。考試人數(shù)指該課程有效成績記錄數(shù)排除空值掛科人數(shù)是其中判定為掛科的記錄數(shù)。掛科率就是兩者之比。這個統(tǒng)計邏輯用字典也能實現(xiàn)但字典存的值是數(shù)組會有些別扭。更穩(wěn)妥的方式是直接在內(nèi)存里維護兩個字典一個存考試人數(shù)一個存掛科人數(shù)。遍歷結(jié)束后再合并輸出。或者用更自然的方式——先動態(tài)收集所有課程名稱到字典A中第二次遍歷時按課程統(tǒng)計。我在實踐里更喜歡用Collection或字典來維護課程列表因為課程名稱不一定在原始數(shù)據(jù)里有現(xiàn)成的枚舉清單。你無法提前知道全校開了多少門課動態(tài)收集才是正解。以下是用字典統(tǒng)計科目掛科率的核心邏輯Dim examCount As Object, failCount As Object Set examCount CreateObject(Scripting.Dictionary) Set failCount CreateObject(Scripting.Dictionary) For i 2 To lastRow courseName Trim(CStr(ws.Cells(i, 4).Value)) If courseName Then GoTo NextRow 有效成績記錄計入考試人數(shù) If examCount.Exists(courseName) Then examCount(courseName) examCount(courseName) 1 Else examCount(courseName) 1 End If 掛科記錄計入掛科人數(shù) If IsFail(ws.Cells(i, 6)) Then If failCount.Exists(courseName) Then failCount(courseName) failCount(courseName) 1 Else failCount(courseName) 1 End If End If NextRow: Next i統(tǒng)計完成后遍歷examCount字典把課程名稱、考試人數(shù)、掛科人數(shù)、掛科率逐行寫入輸出表。掛科率保留一位小數(shù)或百分比形式同時用條件格式把掛科率超過20%的科目標紅方便快速定位問題課程。3.4 多字段核心判斷組合掛科數(shù)據(jù)處理中有一個容易忽略的點同一個學生某一門課掛科了但在另一門課里是緩考緩考雖然也算掛科但定義略有不同。比如學??赡苡幸?guī)則緩考學生可以直接參加補考不占用掛科名額也不會進入學業(yè)預(yù)警名單。這種細微差別落到代碼里就是一個布爾變量的調(diào)整。我的經(jīng)驗是把是否掛科和是否計入預(yù)警拆成兩個獨立的判斷函數(shù)。掛科名單里包含缺考和緩考但預(yù)警名單只考慮成績60的真實不及格。這樣代碼雖然多了一個函數(shù)但語義清晰也方便應(yīng)對不同院系的不同規(guī)則。Function IsWarningFail(scoreCell As Range) As Boolean Dim raw As String raw Trim(CStr(scoreCell.Value)) 只有純數(shù)字且小于60才計入預(yù)警 If IsNumeric(raw) Then IsWarningFail (CDbl(raw) 60) Else IsWarningFail False End If End Function這種把規(guī)則拆解到函數(shù)級別的寫法是我在多次處理績效數(shù)據(jù)的過程中逐漸養(yǎng)成的習慣。一次性把所有邏輯寫在一個事件處理程序里看起來省事但后期要調(diào)整一個規(guī)則時改動影響范圍會比較大容易顧此失彼。4. 完整實操流程與報表生成4.1 環(huán)境準備與數(shù)據(jù)約定實際操作前先約定輸入輸出格式。我用一個獨立的工作簿來處理這類數(shù)據(jù)文件里通常包含四個工作表原始數(shù)據(jù)、掛科名單、科目統(tǒng)計、預(yù)警名單。輸入數(shù)據(jù)固定在原始數(shù)據(jù)表中運行宏后會清空其他三個表并重新填充內(nèi)容。在寫代碼前先確認幾個約定成績在原始數(shù)據(jù)表的第6列F列表頭行是第1行。學號在第1列姓名第2列班級第3列課程名稱第4列學分第5列。所有列的數(shù)據(jù)都不允許包含合并單元格如果原始導出文件里有合并單元格先用Excel取消合并并填充。提示在模擬項目X的實際操作中出現(xiàn)過原始數(shù)據(jù)用Excel公式生成導致部分單元格值為0但公式未計算的情況。建議拿到數(shù)據(jù)后先做一次粘貼為值處理再進入VBA流程。4.2 主流程代碼結(jié)構(gòu)整個宏的主體結(jié)構(gòu)如下包含了數(shù)據(jù)清洗、校驗、統(tǒng)計、輸出四個環(huán)節(jié)并結(jié)合輸入標題VBA實戰(zhàn)案例處理掛科數(shù)據(jù)的全部需求點。該主過程采用模塊化的設(shè)計方便按需裁剪或調(diào)試。Sub ProcessFailData() Dim wsData As Worksheet, wsFail As Worksheet, wsStat As Worksheet, wsWarn As Worksheet Set wsData ThisWorkbook.Sheets(原始數(shù)據(jù)) Set wsFail ThisWorkbook.Sheets(掛科名單) Set wsStat ThisWorkbook.Sheets(科目統(tǒng)計) Set wsWarn ThisWorkbook.Sheets(預(yù)警名單) Dim lastRow As Long lastRow wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row If lastRow 2 Then MsgBox 原始數(shù)據(jù)為空請檢查數(shù)據(jù)表。 Exit Sub End If 清空輸出表舊數(shù)據(jù)保留表頭 ClearOutputSheets wsFail, wsStat, wsWarn 第一階段遍歷并過濾寫入掛科名單 Dim i As Long Dim failRow As Long, statRow As Long, warnRow As Long failRow 2 statRow 2 warnRow 2 Dim dictStu As Object, dictExam As Object, dictFail As Object Set dictStu CreateObject(Scripting.Dictionary) Set dictExam CreateObject(Scripting.Dictionary) Set dictFail CreateObject(Scripting.Dictionary) For i 2 To lastRow 跳過無效記錄學號為空或姓名為空 Dim stuID As String, stuName As String stuID Trim(CStr(wsData.Cells(i, 1).Value)) stuName Trim(CStr(wsData.Cells(i, 2).Value)) If stuID Or stuName Then GoTo ContinueLoop Dim courseName As String, scoreCell As Range courseName Trim(CStr(wsData.Cells(i, 4).Value)) Set scoreCell wsData.Cells(i, 6) 科目考試人數(shù)統(tǒng)計 If examCountExist(dictExam, courseName) Then dictExam(courseName) dictExam(courseName) 1 Else dictExam(courseName) 1 End If 判斷掛科寫入掛科名單表 If IsFail(scoreCell) Then 寫入掛科名單 wsFail.Cells(failRow, 1).Value stuID wsFail.Cells(failRow, 2).Value stuName wsFail.Cells(failRow, 3).Value wsData.Cells(i, 3).Value wsFail.Cells(failRow, 4).Value courseName wsFail.Cells(failRow, 5).Value wsData.Cells(i, 5).Value wsFail.Cells(failRow, 6).Value scoreCell.Value failRow failRow 1 科目掛科人數(shù)統(tǒng)計 If failCountExist(dictFail, courseName) Then dictFail(courseName) dictFail(courseName) 1 Else dictFail(courseName) 1 End If End If 按學生聚合預(yù)警計數(shù)僅真實不及格 If IsWarningFail(scoreCell) Then If dictStu.Exists(stuID) Then dictStu(stuID) dictStu(stuID) 1 Else dictStu(stuID) 1 End If End If ContinueLoop: Next i 輸出科目統(tǒng)計 Dim key As Variant For Each key In dictExam.Keys wsStat.Cells(statRow, 1).Value key wsStat.Cells(statRow, 2).Value dictExam(key) If dictFail.Exists(key) Then wsStat.Cells(statRow, 3).Value dictFail(key) wsStat.Cells(statRow, 4).Value Format(dictFail(key) / dictExam(key), 0.0%) Else wsStat.Cells(statRow, 3).Value 0 wsStat.Cells(statRow, 4).Value 0.0% End If statRow statRow 1 Next key 輸出預(yù)警名單 Dim stuIDKey As Variant For Each stuIDKey In dictStu.Keys If dictStu(stuIDKey) 2 Then wsWarn.Cells(warnRow, 1).Value stuIDKey wsWarn.Cells(warnRow, 2).Value GetStudentName(stuIDKey, wsData, lastRow) wsWarn.Cells(warnRow, 3).Value dictStu(stuIDKey) Dim stuClass As String stuClass GetStudentClass(stuIDKey, wsData, lastRow) wsWarn.Cells(warnRow, 4).Value stuClass warnRow warnRow 1 End If Next stuIDKey 格式化輸出表格 FormatOutputSheets wsFail, wsStat, wsWarn MsgBox 處理完成掛科名單 (failRow - 2) 條科目 (statRow - 2) 門預(yù)警 (warnRow - 2) 人。 End Sub寫這段代碼時有一個反復權(quán)衡的點預(yù)警名單里需要補充學生的班級信息。若在遍歷成績記錄時把學號、姓名、班級對應(yīng)關(guān)系存入字典內(nèi)存開銷會明顯增加但訪問速度更快。我在模擬項目X里選擇了單獨寫一個GetStudentName和GetStudentClass函數(shù)每次按需在原始數(shù)據(jù)表里查找。學生人數(shù)在兩千以內(nèi)時速度尚可如果數(shù)據(jù)量超過一萬行建議換成字典緩存方式。4.3 輔助函數(shù)實現(xiàn)上面主流程中用到了一些輔助函數(shù)這里一并列出來。重點看一下從字典中判斷鍵是否存在的寫法因為這幾段代碼在不同版本的Office里兼容性有細微差別Function examCountExist(dict As Object, key As String) As Boolean On Error Resume Next examCountExist Not IsError(dict(key)) Err.Clear End Function Function failCountExist(dict As Object, key As String) As Boolean On Error Resume Next failCountExist Not IsError(dict(key)) Err.Clear End Function Function GetStudentName(stuID As String, wsData As Worksheet, lastRow As Long) As String Dim i As Long For i 2 To lastRow If Trim(CStr(wsData.Cells(i, 1).Value)) stuID Then GetStudentName wsData.Cells(i, 2).Value Exit Function End If Next i End Function Function GetStudentClass(stuID As String, wsData As Worksheet, lastRow As Long) As String Dim i As Long For i 2 To lastRow If Trim(CStr(wsData.Cells(i, 1).Value)) stuID Then GetStudentClass wsData.Cells(i, 3).Value Exit Function End If Next i End Function補充說明判斷字典中是否存在某個鍵還有一種更標準的寫法是使用字典的Exists方法。上面之所以用錯誤捕獲方式是因為在部分老版本兼容場景下直接調(diào)用Exists對中文鍵的支持有一些量化差異。但如果你用的Office版本較新2016及以上直接用dict.Exists(key)更穩(wěn)妥代碼也更短。實際部署時建議優(yōu)先用Exists方法If Not dictExam.Exists(courseName) Then dictExam.Add courseName, 1 Else dictExam(courseName) dictExam(courseName) 1 End If4.4 報表格式化技巧數(shù)據(jù)統(tǒng)計完成后報表的呈現(xiàn)直接影響使用者閱讀效率。以下這段是格式化輸出的實現(xiàn)重點在于用單元格邊框和顏色把信息分層Sub FormatOutputSheets(wsFail As Worksheet, wsStat As Worksheet, wsWarn As Worksheet) 設(shè)置統(tǒng)一表頭樣式 Dim headerRng As Range Set headerRng wsFail.Range(A1:F1) headerRng.Font.Bold True headerRng.Interior.Color RGB(0, 102, 204) headerRng.Font.Color RGB(255, 255, 255) 掛科名單邊框 Dim lastFailRow As Long lastFailRow wsFail.Cells(wsFail.Rows.Count, 1).End(xlUp).Row If lastFailRow 2 Then wsFail.Range(A2:F lastFailRow).Borders.LineStyle xlContinuous wsFail.Range(A2:F lastFailRow).Borders.Weight xlThin End If 科目統(tǒng)計表掛科率超過20%的標記為紅色 Dim lastStatRow As Long lastStatRow wsStat.Cells(wsStat.Rows.Count, 1).End(xlUp).Row For i 2 To lastStatRow Dim rateVal As Double rateVal 0 If IsNumeric(wsStat.Cells(i, 4).Value) Then rateVal CDbl(wsStat.Cells(i, 4).Value) End If If rateVal 0.2 Then wsStat.Cells(i, 4).Font.Color RGB(192, 0, 0) wsStat.Cells(i, 4).Font.Bold True End If Next i 自動調(diào)整列寬 wsFail.Columns(A:F).AutoFit wsStat.Columns(A:D).AutoFit wsWarn.Columns(A:D).AutoFit End Sub格式化時有一個經(jīng)常被忽略的細節(jié)AutoFit對中文表頭有時不夠友好特別是當表頭文字較長時自動列寬可能讓單元格顯示不全。遇到這種情況建議單獨給表頭列設(shè)置一個最小寬度值。wsFail.Columns(A).ColumnWidth 12 wsFail.Columns(B).ColumnWidth 10 wsFail.Columns(C).ColumnWidth 144.5 一鍵運行的入口設(shè)計為了讓不熟悉VBA的教務(wù)老師也能方便使用我在工作簿中增加了一個刷新報表按鈕并指定宏為ProcessFailData。這樣使用者只需要在原始數(shù)據(jù)表粘貼新數(shù)據(jù)點擊按鈕所有結(jié)果就自動更新。按鈕的添加方式很簡單開發(fā)工具選項卡中插入表單控件按鈕右鍵指定宏。如果所在的Excel版本不顯示開發(fā)工具選項卡需要在文件-選項-自定義功能區(qū)里勾選開發(fā)工具。這一步驟對于沒有VBA經(jīng)驗的人來說也可能卡住所以我在交接說明里特意寫清楚了路徑。5. 實操過程中遇到的坑與排查技巧5.1 成績列存在隱藏空格導致比較失敗實際處理中碰到過一個很隱晦的問題成績列的值在表面上是58但實際上是58 數(shù)字后面帶空格或者是全角數(shù)字。這些字符在視覺上和半角數(shù)字幾乎一致但CStr轉(zhuǎn)換后參與判斷就會出問題。排查這類問題的最快方式是在VBA代碼里臨時輸出每個成績單元格的ASCII碼。我當時用了一個調(diào)試小工具逐格檢查才發(fā)現(xiàn)空格的問題。解決方案是統(tǒng)一用Trim加一個自定義的清理函數(shù)把全角字符轉(zhuǎn)成半角Function CleanStr(text As Variant) As String Dim result As String result Trim(CStr(text)) 全角數(shù)字轉(zhuǎn)半角 Dim i As Integer For i 1 To Len(result) Dim ch As String ch Mid(result, i, 1) If Asc(ch) 65281 And Asc(ch) 65374 Then ch Chr(Asc(ch) - 65248) End If result Left(result, i - 1) ch Right(result, Len(result) - i) Next i CleanStr result End Function全角轉(zhuǎn)半角這段邏輯雖然簡單但它解決了一類非常典型的數(shù)據(jù)導入問題。教務(wù)系統(tǒng)從網(wǎng)頁端導出的數(shù)據(jù)經(jīng)常混入全角字符不處理的話后續(xù)的學號匹配、姓名匹配都可能靜默失敗。5.2 同一課程名稱表述不一致導致統(tǒng)計被拆開教務(wù)數(shù)據(jù)里同一門課在不同老師那里可能表述不同。比如高等數(shù)學在某些記錄里寫成高數(shù)大學英語有時寫成英語。這種情況下科目維度的統(tǒng)計會被錯誤地拆分成兩行掛科率算出來也會偏小。解決思路有兩個方向一是在數(shù)據(jù)源頭統(tǒng)一課程名稱找教務(wù)系統(tǒng)重新導出或者在Excel里做一次查找替換二是在VBA代碼里維護一個課程名稱映射表。映射表更適合場景固定、課程數(shù)量有限的情況。我當時做了一個Dictionary映射把常見別名歸一化到規(guī)范名稱Dim courseMap As Object Set courseMap CreateObject(Scripting.Dictionary) courseMap.Add 高數(shù), 高等數(shù)學 courseMap.Add 英語, 大學英語 courseMap.Add 線代, 線性代數(shù)在遍歷數(shù)據(jù)時每讀到一個課程名稱先查映射表若有別名就替換成規(guī)范名再參與統(tǒng)計。這樣做還有個額外好處輸出報表里的課程名稱是統(tǒng)一的不會讓看報表的人產(chǎn)生困惑。5.3 數(shù)據(jù)量增大時性能變慢模擬項目X的初期版本四千多行數(shù)據(jù)跑一次宏大約需要十幾秒主要耗在輸出環(huán)節(jié)和GetStudentName/GetStudentClass的反復全表查找上。如果每個預(yù)警學生都要遍歷一次全表性能開銷確實不小。優(yōu)化思路有兩個預(yù)警名單輸出前已經(jīng)知道哪些學號需要查詢姓名和班級可以邊遍歷邊收集學生信息而不是最后再查。也就是在第一次遍歷時把每個學號對應(yīng)的姓名、班級存入字典后面直接取用。關(guān)閉屏幕更新和自動計算。在宏開頭加上Application.ScreenUpdating False和Application.Calculation xlManual宏結(jié)束再恢復。這段小改動通常能帶來三到五倍的性能提升。Sub ProcessFailData() Application.ScreenUpdating False Application.Calculation xlManual ... 原有邏輯 ... Application.Calculation xlCalculationAutomatic Application.ScreenUpdating True End Sub5.4 常見問題速查問題現(xiàn)象可能原因排查與解決辦法運行宏時提示類型不匹配成績列存在文本或全角字符用CleanStr統(tǒng)一轉(zhuǎn)換數(shù)據(jù)或用IsNumeric先做類型判斷科目統(tǒng)計中同一課程出現(xiàn)兩行課程名稱不統(tǒng)一建立課程別名映射表歸一化名稱后再統(tǒng)計預(yù)警名單漏人判斷函數(shù)沒覆蓋缺考標記檢查IsWarningFail邏輯確認缺考與真實不及格的區(qū)分規(guī)則輸出表格沒有邊框/顏色格式化代碼未執(zhí)行檢查FormatOutputSheets是否在主流程末尾被調(diào)用數(shù)據(jù)更新后舊結(jié)果被保留沒有清空輸出表舊數(shù)據(jù)在輸出前調(diào)用ClearOutputSheets先做整表內(nèi)容清除按鈕點擊后沒有反應(yīng)宏被禁用文件另存為啟用宏的工作簿.xlsm并在選項里啟用宏學號前導0丟失Excel自動把學號識別為數(shù)字在原始數(shù)據(jù)里把學號列設(shè)置為文本格式或從教務(wù)系統(tǒng)導出時選文本格式6. 這套方案還可以延伸去做什么處理掛科數(shù)據(jù)只是VBA教務(wù)自動化的一個入門場景。同一套思路——遍歷、字典聚合、條件判定、格式化輸出——遷移到其他場景時基本不需要大改。比如說綜合測評排名。原始數(shù)據(jù)換成多個維度的評分項判定規(guī)則換成加權(quán)得分計算輸出表換成排名表核心代碼框架可以原樣復用。再比如說選課名單核查。把掛科判定換成沖突檢測判斷邏輯可以檢查同一個時間段內(nèi)是否分配了兩門課程。再比如畢業(yè)資格審核按學號聚合各學生已修學分和必修課完成情況輔助判斷是否達到畢業(yè)條件。我個人實際使用這套方案時最大的體會就是永遠不要在原始數(shù)據(jù)表里手工改數(shù)據(jù)。把數(shù)據(jù)清洗、統(tǒng)計、輸出分成三個相對獨立的過程每次有新的數(shù)據(jù)文件就新開一個工作簿把原始數(shù)據(jù)粘貼進去運行宏生成結(jié)果。這樣原始數(shù)據(jù)永遠可追溯結(jié)果也隨時可以重新生成不會出現(xiàn)改了一個單元格結(jié)果忘記刷新統(tǒng)計的尷尬情況。另一個經(jīng)驗是交給別人使用的工具界面友好度比代碼優(yōu)雅度更重要。我在最終版本里特意在預(yù)警名單表頂部加了一行說明文字提示預(yù)警規(guī)則是真實掛科超過兩門避免使用者和教務(wù)辦對預(yù)警口徑有不同的理解。代碼里每一處規(guī)則都寫了注釋防止半年后自己回來看的時候還得重新猜邏輯。如果你剛接觸VBA建議先拿這個案例的數(shù)據(jù)結(jié)構(gòu)——一張成績表、幾個統(tǒng)計需求——練手。把代碼一行行在本地跑通再試著修改掛科線、增加一個統(tǒng)計維度、或者把輸出格式改得更符合自己的偏好。VBA的學習曲線不算平緩但這種接到一個真實需求解決一個具體問題的學習方式比單純看語法書要有效得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色五月综合激情网| 丁香五月婷婷图片综合| 国产成人精品一区二三区熟女在线 | 欧美Va日本Va| 婷婷五月丁香久久| 日韩成人中文| 久久久宗合| 五月色丁香综合| 天天日夜夜爽。| 天天透天天爱| av九九| 亚洲色五月| 婷婷五月丁香99| 91xxxx九色| 九九99在线免费在线观看视频| 五月丁香婷婷综合在线| www.精品99| 色色色综合色| 欧洲综合色| 狠狠干夜夜干| 国产亚洲精品AAAAAAA片| 在线中文字幕免费视频| 亚洲国产婷婷色五月| 亚洲综合五月天综合| 五月天婷婷无码视频| 日本久久婷婷| 色9999综合久久| 大香蕉99| 五月婷婷激情综合视频| 99九九在线| 99热精品在线| 日本久久超碰| 色丁香五月天婷婷| 国产一级片| 97超碰色| 2020久久婷婷五月| 色色婷婷五月天| 91精品91久久久久77777| 狠狠色噜噜狠狠亚洲A∨| 日韩在线视频中文字幕| 六月婷婷九月丁香亚洲综合| 久久久久9| 99在线精品免费视频| 伊人网啪啪| 天天色天天射天天日| 人人人人人人人草| 婷婷色婷婷| 丁香五月婷婷婷桃花影院| 九九色之九九色88| 色婷婷色五月天| 五月花免费视频| 久久丁香婷| 伊人干综合| 日撸夜撸日操| 少妇做爰免费视看片| 99久久97久久欧美综合网| 色婷婷婷综合五月天| 日日噜噜夜夜狠狠久久丁香六月| 日本eVa一区=区视频| 综合久久97| 青草热视频这里只有精品| 夜夜操天天爽| 欧美电影在线观看| 五月丁香亚洲校园欧美| 五月久久婷婷丁香| 色婷亚洲| 久久人妻伊人| 色婷婷中文| ay2区| 五月综合激情网| 久久婷婷五月综合| 色五月天丁香| 久久性操| 91九色成人原创视频| 另类图片激情五月天| 五月丁香欧美综合| 91九色在线视频| 牛牛碰免费| 成人五月天丁香| 六月丁香啪| 啪啪激情网站| 饮料下药迷倒漂亮女同事强干| 91精选国| 欧美性丁香色色五月天综合爱爱| 五月天婷婷社区| 丁香 久久| 五月天五月天激情网| 播丁香五月婷婷欧美| 成人精品一区二区三区四区五区 | 色婷婷丁香| 六月婷婷色色网| ,99视频久久| 婷婷五月天视频亚洲| AAA级久久久精品| 久久婷婷六月天| 九色PORNY自拍成人精彩视频| 久久九网| 天天摸日日舔狠狠添婷婷婷| 色色三级视频| 丁香五月亚洲婷婷| 久婷狼色诱惑在线| 国产资源91在线| 国产美女无遮挡裸体毛片A片 | 久久九九经典| 思思热视频在线观看| www,婷婷,com| 久久激情五月网| 亚洲色无码A片一区二区麻豆| 婷婷五月天播| 精品夜夜澡人妻无码AV| 五月丁香亚洲五月| 国产成人精品一区二三区熟女在线 | 五月婷婷性爱| 丁香激情网| 色婷婷19| 日日爽夜夜爽| 婷婷六月插屄激情| 97色一二三| 欧美国产一区二区三区| 婷婷色啪| 在线综合网| 婷婷中文字幕在线| 97久久超碰| 亚洲第一成人无码A片| 色爽九九| 六月婷婷网| 日韩在线观看亚洲| 成人五月天在线观看| 99久久这里只有精品| 久久久这里都是精品| 狠狠操狠狠操AV| 激情小说婷婷小说| 日韩久久系列| 欧美丁香五月夫妻天| 色五月大香蕉婷婷| 丁香五月天啪啪| 色很久综合| 欧美Va婷色| 五月丁香色婷婷久久| 丁香六月色婷婷| 九九热这里只有精品5| 欧美精品999| 九九Av| 99热在线只有精品| 五月四色婷婷| 久久综合五月| AV操操操| 婷婷五月天成人网站| 夜夜嗨一区二区三区直播内容| 骚货艹网站视频| 婷五月天六| 99热在线观看精品| 亚洲综合网激情五月天| 大香蕉丁香| 热99免费在线| 天天在线久久综合 | 天天爽,夜夜爽| 婷婷丁香花五月天| 国产伦亲子伦亲子视频观看| www.狠狠操| 在线婷婷| 91av视频| 99久久婷婷| AV五月丁香| 久久免费干| 九热视频| 中海油常州环保涂料有限公司| 无码少妇高潮喷水A片免费| 丁香五月天在线| 五月婷婷色播| 色播五月| 色婷婷XXXXX| 狠狠干狠狠干| 欧美人妻一区二区| 婷婷6月综合网| 国产性爱在线| 久婷婷| 日日干日日s| 久久久久久久久久久久久久久久久精典| 97视频.干com| 天天日人人爽| 99碰超| 国产日产亚洲系列最新| 99在线精品视频免费观看20| 久热久色| 99日在线观看视频| 国产亚洲精品AAAAAAA片 | 五月天色视频| 依人大香蕉在钱1| 月婷婷婷婷五月| 五月丁香激情片| 五月天堂六月丁香亚州中文字幕久久| www.夜夜操.com| 婷婷丁香在线播放| 香蕉国产2013| 九九热青草| 色五月亚洲| 婷婷五月丁香综合| 狠狠色婷婷丁香五月| 综合激情五月丁香| 国产色色视频| 夜夜操天天爽| 五婷婷六月合| 婷婷情色五月天| 97在线观看| 九九热最新| 六月婷伊人| 97在线/亚洲| 婷婷五月天免费99| 婷婷激情网五月天| 日本色噜| 久久久91| 综合在线观看99| 色色激情五月天| 夜夜干天天干| 开心五月丁香啪| 中文字幕无码成人电影| 狠狠ri| 五月天开心激情综合网| 超碰在线观看9| 天天影视色综合网| 都市激情五月婷婷综合| AV网址大全在| 亚洲AV影片在线观看| 久久三级视频| 精品无吗va视频免费观看| 激情综合网,五月| 色琪琪一综合久久激情五月视频| 久久激情四射| 97操碰人免费| AV大片在线播放| 五月天婷婷丁香| 国产无人区大片| 午夜做爱影院| 天天爽成人综合网站| 久久 中文 日本| 狠狠操天天干| 久久99久久99久久99人受| 六月婷婷色| 五月深爱激情网| 久久狠狠干| 青青草Avb在线| 日韩一本操| 五月激情六月丁香| 67194国产| 思思国产99| 五月丁香在线国产| 五月香蕉综合| 爱爱色五月天| 九九视频精品这里只有| 玖玖99福利| 丁香九月婷婷| 激情五婷网| 婷婷五月天中文字幕| 无码少妇高潮喷水A片免费| 色久女| 激情五月天视频| 色播激情五月天| 激情综合亚洲色婷婷五月| 免费色色色| 99久久66| 99高级会所久久| 久久九九爽| 午夜日日| 激情久久久久久久久久| 96精品久久久久久久久| 亚洲综合99| 婷婷五月电影| 五月天综合网| 久久色五月| 成人五月天综合网| 国内久久婷婷| 天天色综| 五月婷婷中文字幕| 激情五月天色色| 五月丁香大相交| 九九综合| 99精品97| 色蜜婷婷| 97久久人人| 婷婷久热| 久热大香蕉| 99在线视频色版| 成人网页在线观看| 色V狠狠的干| 五月天啪啪| 夜夜涩涩涩| 夜夜爽天天| 国产精品色色666| 婷婷五月开心中文字幕色| 婷婷五月丁香基| 五月五丁香婷婷| 99热在线观看这里只有精品| 99色精品| 五月综合久久| 亚洲中文字幕在线观看| 99欧美精品99日本精品| 丁香色情五月综合激情| 久久99激情| 丁香婷婷黄网站| 五月丁香综合| 综合久久高清| bbwcuckold精品熟妇| 精品一区二区三区四区五区六区介绍 | 色射影院| 六月丁香深深爱| 99日韩网站| 五月天激情开心网| 亚洲秘 无码一区二区三区妃光/1| 97婷婷狠狠| 人妻久久久久久久 | 欧美日韩成人高清在线| 一区二区乱码视频| 精品九九网| 综合久久综合久久| 亚洲欧洲色色| 日日做夜夜爱| 久久五月激情| 九九在线精品| av婷婷丁香| 亚洲熟女乱色综合亚洲网站| 六月婷婷无码| 丁香色五月婷婷| 欧美在线97| 桃色五月天| 久久久.www| 久久精典| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 超爽内射| 国产精品久久99| 天天干天天日日| 99综合色| 天天噜噜| 五月天激情亚洲| 久久久精品AV| 99热只有国产在线精品| AV人人操| 激情婷婷丁香| 九九99偷拍视频| 大香蕉婷婷丁香视频在线| 五月丁香亭亭成人电影| 五月天激情亚洲| 99热自拍| 九九色婷| 色婷婷色情| 丁香五月成人论坛| 国产亚洲精品久久一区二区三区| 中字幕视频在线永久在线观看免费 | 91se精品国产| 99熟女啪啪视频| 色五月在线| EEUSS鲁片一区二区三区| 67194国产| 久久一操| 99热这里只有精品23| 五月婷婷色播| 婷婷精品| 久综合色| 五月丁香婷婷中文网| 丁香六月激情网C0W| 美女五月天| 婷婷五月色花丁香社区| 婷婷六月激情啪啪| 91超级碰碰碰| 青青草99热久久精品国| 五月婷婷色吧!| 亚州操人在线视频| 国产av天堂| 婷婷五月色影视先锋| 激情五月图| 99精品在线| 天堂婷婷综合| 国产av影片| 婷婷激情五月综合在线视频| 伊人久久婷婷| www色色色com| 欧州色色| 99热啪啪| 91丁香五月| 激情小说 五月天| 96丁香六月婷婷蜜桃综合久久| 久久免费丁香| 五月婷婷免费在线观看视频| 婷色影院| 97影院一级片| 九九久久视频| 97操操网| 丁香五月婷婷六月婷| 亚洲精品无码久久| 精品99在线| 亚洲成人五月| 在线观看av网站| 超碰色热| 五月天激情社区| 激情五月天开心| 久久99热网| 五月婷婷欧美| 久久激情五月天| 伊人久热91| 五月天久久丁香| 六月色播| 秋霞九九无码| 婷婷五月天亚洲激情戏精品| 五月丁香六月激情| 婷婷激情肏屄网| 丁香五月在线自慰| 欧美色九| 五月亭亭六月天| 激情 久久 婷婷| 婷五月丁香俺| 色丁香五月婷婷| 婷婷免费视频| 丁香婷婷色九月| 五月天婷婷中文字幕在线播放| 99这里有精品| 久久婷婷五月草视频在线播放| 99re8在这里只有精品| 四季日韩AV无码综合| 色色影院aaaav| 欧美婷婷综合| 伊人久久大香线蕉综合网站| 人人视频人人干人人做| 五月天婷婷久草丁香| 婷婷久久夜| 激情综合网五月婷婷| 中文字幕五月久久婷| 亚洲综合色丁香婷婷六月| 亚洲日韩一页精品发布| 天天日人人| www.色婷婷| 六月婷婷网| 激情久久久| 欧美在线骚货| 99综合免费视频| 久久婷婷免费| 思思热精品在线观看| 日比视频91| 五月天五月天成人网亭亭成人色网站| 丁香婷婷久久综合在线| 色婷婷五月天| 久热9热| 狠狠操在线视频| 亚洲综合五月天婷婷| 人人爽亚洲| 色婷丁香91| 五月婷婷丁香色播网| 伊大人久久| 91色情播放| 狠狠干在线| 情色婷婷五月天| 91超碰人人操| 丁香五月婷婷六月| 亚洲综合激情五月天婷婷| 天天干天干| 久久综合网免费视频| 国产欧美日韩综合精品一区二区| 色色丁香激情五月| 手机在线视频观看9| 99精品免费视频| 中文字幕,综合,91| 国产激情婷婷| 97在线精品| 能看的AV| 天天天天天天噜| 东北黄色一级| 色播五月婷婷| 99色爱| 日本波多野结衣视频| 婷婷综合六| www.激情五月天.con| 色噜噜狠狠色综合网| 99色色热热| 强辱丰满人妻HD中文字幕| 婷婷六月激情综合| www九九热| 日欧一片内射VA在线影院| 九九热经典视频在线观看| 性爱激情五月| 亚洲五月天婷婷| 日韩成人网址| 91午夜婷婷狠狠久久综合9色| 天天摸天天透天天舔| 色五月婷婷操逼| 五月天丁香网| 青青草日本亚洲| 五月停性愛| www.99视频| 色啪综合| 美女久久婷婷| 色色五月天激情| 东北婷婷五月天| 五月婷婷成人| 香蕉久久国产AV一区二区| 五月天婷亚洲天综合网综合| 月色色综合婷婷网| 99这里只有精品| 99热在这里只有精品| 综合五月婷婷| 狠狠爱成人综合网| 丁香六月婷婷| 婷婷丁香亚洲五月天| 婷婷五月天中文字幕| 国产99久久久国产精品免费看| 欧美25p| 色五月婷婷天天干| 五月激情婷婷国产精品久久久久久| 九热视频在线精品15| 丁香六月天婷婷色| 丁香色色色| 西西4r午夜剧场| www久久久| 久久五月综合| 婷婷五月激情基地| 99精品热视频| 亚洲精品另类| 色色色99| 99免费| 激情综合亚洲| 九月婷婷综合网| 日日夜夜天天| 五月精品免费XXX| 五月久久网| 伊人丁香在线| 日本99久久| 天天影视色综合网| wwxx日本| 91精品国产91久久久久青草| 超碰成人免费| 五月丁香影院| 丁香五月停停av| WWW·天天操·视频?| 天天操天天曰天天射| 成人av在线网| 另类少妇人与禽zOZZ0性伦| 伊人午夜综合色啪| 激情五月天在线观看婷婷| 色综合色婷色基地| 狠狠狠狠狠狠草| 五月婷婷五月天| 综合激情在线视频| 国产欧美va| www.26uuu.com亚洲电影| 五月激情五月丁香| 91丨九色丨国产打屁股| 国产免费av在线| 天堂呦 呦百度搜索-百度搜索| 91九色国产| 美女激情婷婷| va中文资源在线观看| 97人人干人人操| 久久爱综合| 久久五月婷天天干| 麻豆AV一区二区三区| 六月婷婷综合| 91九色欧美| 九九视频这里只有精品| 激情精品久久| 操操操www.com| WWW色色色COM| 丁香婷婷五月综合欧美另类| 狠狠久久婷五月综合色| 六月婷婷啪啪| 亚洲热热视频| 五月婷六月丁香| 天天爱天天做综合| 激情五月天开心网丁香无码| 亚洲精品电影| 大香蕉五月丁香| 碰人人操| 中文字幕综合色| 91 九色大美女| 最近免费中文字幕大全高清大全1 免费看欧美成人A片无码 | 色五月婷婷激情五月| 91久热| 日韩影院三级| 激情文学久久| 这里只有精品视频222| 大香蕉久| 97影院一级片| 激情99| 五月激情网站| 婷婷亚洲综合| 99色综合久久| 超碰A V在线| 二区成人视频| 日本123区日韩欧美不卡在线看| 久久婷婷五月天大香蕉| 性爱技巧五月| 国产69久久久欧美黑人A片| 五月天综合网| 五月天社区| 可以看的AV| 丁香五月婷婷日本| 日韩成人AV在线播放| 婷婷婷婷婷婷婷婷| 狼人婷婷久久| 99热激情| 丁香五月成人| 无码视频国内精品久久久| 日碰日| 操人妻AV| 九九综合网| 色婷在线视频| 99久久.www| 亚洲一级色电影| 九月激情综合婷婷| 午夜成人AV在线| 久久视这里只有精品| 精品婷婷五月天| 激情网第九色| www。五月天。com| 伊人深爱综合| 五月婷婷啪啪| 五月婷婷综合网| 国产成人片| 日日操天堂| 激情文学 综合 九月| 91九色中文字幕女在线观看| 国产婷婷色综合AV蜜臀AV | 五月婷婷激情| 午夜69成人做爰视频| 九九精品热| 免费观看欧美成人AA片爱我多深| 在线观看免费视频| 精品操逼一区二区| 日韩操女| 丁香激惜男女| 婷婷五月丁香基| 日日操夜夜骑| 五月激情基地| SS丁香五月婷婷| 日本天堂免费99| www婷婷| 先锋影音av色五月天资源站| 久久99久久久久久久噜噜| 999婷婷综合| 狠狠色性| www.婷婷| 国产精品国产成人国产三级| 超碰永久在线| 99成人网一区| 色丁香五月婷婷在线| 色综合九九色综合88| 99色综合| 国内自拍97在线| 五月丁香亭亭操逼| 3pAV| 亚洲激情免费视频| 婷婷操久久| 无码少妇高潮喷水A片免费| 91人人爱| 国产亚洲99久久精品| 99re热久久| 日韩在线视频中文字幕| 密着浓厚中出乚交尾GvG935| 久久香蕉福利| 天天爽天天透天天爱| 久久久久久久久99精品| 99色天堂| 婷婷五月日本| 熟女乱论网| 亚洲美女网Va| 国产午夜精品一区二区三区嫩草| 亚洲综合999| 888精品福利地址| 人人干人人操人人摸| 成人AV在线电影| 91色色色视频| 人人舔人人色人人高潮| 狠狠人妻色综合| 婷婷丁香九色| 色综合网上班开心婷婷久久| 天天操夜夜爽| 久久99精品视频| 2018夜夜草| 久久久国产精品黄毛片| 六月丁香av| 激情亚洲五月| 性爱网五月天| 3DAV亚洲香蕉久久 一区二区| 色色自拍视频网站| 中文成人在线| 日本美女97在线视频| 久久婷婷五月激情综合| 五月丁香网站| 五月天激情av| 激情第四色| ww久久| 极品五月天| www.狠狠| 婷婷福利影院| 五月婷人妻| 婷婷五月激情综合| 99人妻碰碰碰久久久久视| 久久这里只有精彩| www.色综合.com| 69人人操人人爽| www.伊人天堂偷偷婷婷| 伊人激情影院| 亚洲AV网站在线观看| 丁香婷婷色情社区成人小说| 国产99久久久国产精品免费看| 激情综合亚洲| 婷婷五月综合网| 亚洲超碰青涩| 色情播放| 国产精品18久久久| 色噜噜狠狠色综合成人99| 久色婷婷200| 丁香网站| 欧美人久久| 久久久久人妻精品| 丁香婷婷久久综合在线| 五月色导航| 亚洲性爱电影| 激情五月婷婷丁香综合网| 国产又黄又爽又激情不遮挡视频在线观看| 婷婷五月天久久久| 色色色色五月天| 亭亭色天香| 久久久久久人妻| se99高清无码| 99热97| 亚洲思思热久| 色婷婷电影网| 狠狠综合久久| 六月婷婷色综合| 九色91国产| 成人婷婷| 丁香五月综合婷婷| 99人妻碰碰碰久久久久视| 色射7856五月天激情四射| 久久免费婷婷视频| 丁香婷婷五月天成人| 五月婷婷丁香五月婷婷| 2018夜夜草| 五月丁香婷婷激情在线视频| 欧美经典片免费观看大全| 大香蕉久久久久| 男人天堂99| 9久久精品视频| 婷婷激情综合| 9月色婷婷| www999日韩精品| 五月婷婷中文字幕| 日本在线99| 伊人婷婷大香蕉| 色五月婷婷综合| www.精品久9| 婷婷综合一二三| 黄色激情久久| 五月丁香大香蕉| 色婷五月婷婷| 97碰在线视频| 天天做天天双| 激情五月四色| 婷婷丁香五月综合激情小说| 99久久終合| 开心激情网五月| 在线五月婷| 色久天| 91日日日| 婷婷五月av| 美女亚洲五月丁香| 六月成人网| 亚洲精99| 五月丁香影院| 国产又黄又爽又激情不遮挡视频在线观看| 色五月综合激情网| 色五月天综合网| 99玖玖在线视频| 色色色色网| 男人天堂亚洲综合| 伊大人久久| 99热8| 操97| 搡BBBB搡BBB搡五十| 六月丁香深深爱| 热99.com婷婷| 丝袜激情网| 成人天天爽| 亚洲偷| 这里只有精彩视频| 国产乱码久久| seuuu婷婷| 能看的AV| 熟女网站久久| 亚洲色婷婷| 色情激情五月| 偷拍九九五月丁香婷婷| 激情五月小说婷婷| 精品成人无码A片观看香草视频| 人人超碰99| 婷婷综合久久| www.狠狠干com| 久久精99| 99精品久久| 色色婷婷综合网| 黄网在线观看免费| 色婷婷99| av色色国产| 五月婷婷综合网| 久久久久久久久月丁| 激情五月色婷婷| 亚洲激情无码久久| 婷婷色六月| 婷婷深爱五月| 亚洲欧美另类在线23p| 五月丁香婷中文| 五月天激情色色| 99色网站| 99这里只有精品视频免费| 久久人人添人人爽添人人片αV| 成人版视频在线观看| 成人五月天在线视频在线观看| 性做久久久久久久免费看| 丁香五月婷婷综合网| 99九九精品视频| 丁香五月之久操视频| 777色色色| 五月伊人综合| 2021日韩无码| 天天日天天舔| 久草a片| 色五月五月天| 久久久久久综合88| 91在线97视频| www.夜夜操| 日韩AAAAAAAAAAA片| 五月婷婷五月丁香综合| 欧美日韩五月婷婷| 国产AV一区二区三区最新精品| 久久综合首页| 热99这里只有精品视频| 97综合在线| 欧美婷婷色五月网| 色色色网站| 99国产精品久久久久久久久久久| 热99久久这里只有精品| 97精品欧美91久久久久久久| 秋霞av不能| 亚洲精品字幕| 久久久18| 99综合视频| 色五月综合婷婷| 色婷婷基地在线| WWW·色色色·COM| 国产肥白大熟妇BBBB视频| 在线中文字幕av| 丁香五月婷综合网| 五月色婷婷综合丁香精品无遮挡| 亚洲在线操| 3DAV亚洲香蕉久久 一区二区| 国产毛片精品一区二区色欲黄A片| 超碰三级片| 开心激情播播五月天| 色丁香综合影院| 一区二区三区视频| 亚洲丁香婷婷| 怎么样可以看免费的一级av| 99热首页| 97干欧美| 五月婷婷激情综合拍| 狠狠色丁香99| 五月丁香手机在线| 在线观看中文字幕亚洲| 9久热在线精品| 色婷婷基地 | 26uuu在线观看| A在线观看| 色婷婷狠狠| 五月丁香基地| 国产精品色色色色| 国产在线6| 久久99免费视屏| 久99热在线观看| www.久久久久久久久久.com| 婷婷欧美| 五月婷婷婷婷| 成人在线精品| 丁香婷婷五月六月久久| 操九色| 五月天成人综合| 九九99视频| 3www激情| 午夜电影网VA内射| www.日韩艹| 婷婷丁香五月视频| 激情六月下句是什么| 久久超级碰视频| 久热爱大香蕉在线蜜臀悦色 | 高清国产AV| 激情文学 综合 九月| 思思久久久婷婷| 一二线视频 另类| 免费无码毛片一区二区A片| 99九色视频在线观看| 色欲丁香| 97精品综合久久| 五月色色网| 欧美综合激情丁香五月六月婷| 国产婷婷五月色情综合| 亚洲99精品欧美一区| 人草人人| 婷婷色正月| 五月婷婷中文字幕| 色播播五月| 俺去啦综合网| 五月婷婷人妻| 视频色色色色色色| 播四月婷婷六月丁香| www激情婷婷com| 开心激情综合| 五月婷婷色| 激情婷婷五月社区| 99精品免费视频| 五月婷婷在线观看黄| 婷婷激情人妻| 99这里有精品视频| 97干在线播放| 四虎成人精品永久免费AV九九| 色五月大| 久色网址| 丁香六月婷| 日日爽夜夜爽| 国精产品一区一区三区免费视频| 免费三级黄色| 五月婷婷综合成人| 99精品九九| 伊人9草在线观看| 99男人的天堂| 先锋资源91| 婷婷爱在线观看| 色情综合网| 丁香婷婷综合五月天| 这里只有精品视频看看| 婷婷五月激情视频| 婷婷五月天在婷| 色婷婷综合视频| 久久婷婷综合国产| 久久亚洲激情五码| 亚洲精品一区中文字幕乱码| 就去色色五月丁香婷婷久久久| 激情丁香五月AV| 五月玖玖| 99热在线99| www,五月天激情| 五月天啪啪啪| 中文字幕AV在线播放| 亚洲午夜av| 色婷婷网大全在线| 午夜日日| 亚洲永久四色| 丁香六月激情综合网| 开心五月激情婷婷| 久久看婷婷| 久久婷婷伊人| 三十熟女| 一片AV片免费播放| 天天搡日日搡aaaaⅩ| 激情99热| 东北婷婷五月天| WWW.桔色成人.COM| 婷婷五月天网| 一级内射毛片| www久久99| www.91有码.com| 五月久视频| www色五月| 五月婷婷av在线| 日本久久精品18| 五月开心婷婷极品激情| 五月婷婷花| 色婷婷综合影院| 99无码视频| 久久婷婷九月国产精品| 日本WWW九九九| 性 色 婷婷| 狠狠色狠狠操| 97啪啪| 久久精品日| 这里只有精品偷拍| 色色亚卅| 大香蕉欧美在线| 国产在线aaa片一区二区99| 久久丁香九| 狠狠色噜噜狠狠色噜噜噜999| 亚洲人成人五月天| 五月婷婷六月丁香| 九九草草逼| 久操大香蕉| 丁香六月亚洲综合| 激情综合五月| 婷婷五月丁香激情图片| 婷婷五月天美女| 五月婷婷激情视频| 国产毛片精品一区二区色欲黄A片| 婷婷五月激情综合啪啪| 亚洲色色在线| 丁香五月成人婷婷| 伊人在线视频| 免费黄色AV| 国产精品久久久久久五月天加勒比 | 五月天婷婷丁香人人操91| 玖玖国产视频一区| 丁香五月停停av| 99免费在线| 秋霞网在线免费基地五月婷婷丁香| 精品在线网站| 影音先锋人妻出差| 99热精品无码| 大香蕉视频99| 开心五月婷婷六月丁香| 超碰在线9| 亚洲AV无码电影| 99热这只有| 日韩在线视频中文字幕| 一本色道久久综合狠狠躁一二三| 色哟哟www| 丁香激情婷婷网| 成人 视频免费观看网站| 五月美女婷婷风骚| 婷婷丁香六月五月天| 久久婷婷五月综合啪| 激情综合五月丁香| 久久激情五月婷婷| 伊人狠狠干| 色婷婷99| 日本三级中国三级99| 青青草视频福利| 99热国产免费| 丁香五月婷婷av| 亚洲亚洲永久无码777777| 图片区 小说区 区 亚洲五月| 亚洲操精品| 五月丁花六月丁香综合| 丰满少妇猛烈A片免费看观看| 丰满少妇乱A片无码| 婷婷色婷婷| 丁香五月成人在线| 丁香五月婷婷基地| 色呦呦免费观看| 丁五月激情视频免费| 五月婷婷亚洲天堂97色婷婷| 婷婷综合激情五月中文字幕| 99操久久| 狠狠干在线| 丁香五月婷婷色播艳门照| 国产成人一区二区三区在线观看| 日韩精品一品二区三区的使用体验| 好激情在线综合网| 人妻熟人中文字幕一区二区| 日韩色色网| 五月丁香免费视频| 色播五月综合网| 婷婷婷婷婷开心无码播放| 大香蕉色婷婷伊人在线| www.国产亚洲69ty.久久久久久久久久久久| 婷婷99中文字幕| 色婷婷久久7777| 亚洲色婷婷五月| 丁香五月天成人| 五月 丁香 欧美| 色噜噜狠狠色综合日日| 五月激情啪啪| 久婷婷| 久久3p| 综合啪啪| 久久婷婷东京热| 五月天久久综合婷婷丁香| 日本猛少妇色XXXXX猛叫| 精a品a视a频| 第四色五月天| 婷婷成人网五月天| 五月丁香啪啪| 天天色播| 天天做天天爱| 99热大全在线观看| 天天日天天摸| 激情五月,色五月| 99热这里只有精品1| 亚洲九区| 91啪啪| 九九热在线观看6| 五月丁香啪| 亚洲天堂热| 亭亭五月色男人| 天天干,天天舔| 色婷网| 97精品综合| 日日噜噜夜夜狠狠久久丁香六月| 丁香视频| 99久精品视频| 久操福利| 天天精品视频免费观看| 九九九九九九热| 婷婷成人丁香色情基地30 | 墨西哥毛片内射精| 亚洲成人人人操| 我想看国产大学生口爆吞精的视频| 99视频在线| 欧美性久| 97精品欧美91久久久久久久| 91啪啪| 91一起操| 色婷五月丁香久亚洲| 五月婷视频| 99国产这里只有精品| 五月婷婷亚洲色图| 婷婷六月色开 | 五月天婷婷激情在线色图| 美国十月色婷婷在线观看| 久99久视频免费观看| 丁香激情久久| 亚洲无码成人网| 狠狠色成人影片| 日日干综合| 久久综合26p| 激情五月色播五月| 五月丁香久久呀| 丁香五月情| 99久久综合| 精品人妻伦九区久久AAA片| 国产另类综合| 色色色色色色色色色色色色色五月天| 久久精品系列| 蜜臀AV在线成人| 色欲一区二区三区精品A片 | 欧美超级视频97| 狠狠爱综合网| 色五月激情五月| 思思热国产在线| 国产精品色婷婷久久久精品| 色噜噜狠狠色综合日日| 人妻乱码久久久| ztEJj| 色导航色婷婷五月天在线观看| 亚洲色人妻| 五月天激情久久| 五月丁香婷中文| 超碰人人操人人干| 丁香六月色婷婷欧美| 婷婷.com| 亚洲六月色婷婷| 五月婷婷亚洲天堂激情在线| AA片在线观看视频在线播放| 天天色激情| 欧美伊人9| www.婷婷.com| 色五月色综合| 婷婷天堂视频| 欧美色频| 色永久| 夜夜 操无码| 亚洲妇女熟BBW| 日韩三级高清无码| 激情四射网| 91妻人人爽人人看片| 亚洲天堂色色| 色色色在线免费视频| 色吧99| 伊人久久大香蕉网| 五月丁香六月婷婷中合网| 中文字幕人妻一区二区| 久久婷婷啪啪视频| 很操日本7| 青青草色在线视频观看| 办公室少妇激情呻吟A片在线观看| 狠狠人妻久久久久久综合丁香| 丁香五月停停基地| 久久怡红院| 激情綜合W W W,激情五月天| wWwCom夜操wwW| 一本久婷婷综合| 天天色综网| 激情五月丁香色婷婷| 久久9999| 少妇人妻人伦A片| 99亚洲视频| 五月丁香综合啪啪啪啪啪| 五月丁香在线观看99| 亭亭五月激情亚洲在线| 99热精品观看| 九九成人视频| 五月天开心激情综合网| 天天做综合| 久久综合婷| 亚洲日韩一页精品发布| 婷婷五月天影院| www.激情.com.| 色图亚洲91| 99热6精品| 色五月婷婷亚洲| 激情99热| 9月色婷婷| 九月丁香婷婷网| 天天操天天插| 91狠狠色丁香| 99re在线这里只有精品视频首页| 亚洲色综合| 成人精品网站在线观看| 婷婷性爱| 天天色噜| 极品人妻videosss人妻| 91九色精品女同系列| 久久久久久9热不雅视频| 91丨九色丨大屁股| 五月激情六月综合| 激情网开心网| 丁香五月,开心五月,成人婷婷 | 免费黄色视频网址| 九九热视频精品| 亚洲无码成人性爰网| 超碰亚洲天堂| 内射在线CHINESE| 色婷婷小说| 天天综合色| 综合网五月天123| 丁香五月在线伊人| 婷婷色基地在线看| 激情涩播| 久久久网站| 1024人妻| 69色婷婷| 五月丁香亚洲综合| 天天操天天谢| 久热这里只有国产| 婷婷操超碰| 五月天婷婷色色首页| 大香蕉久久视频久久视频| 欧美人妻一区二区| 91青娱乐青青草| 激情伊人五月天| 天堂婷婷五月色| 婷婷午夜精品久久久| 久久日九九| 色五月在线综合| 影音先锋91在线资源站| 国产在这里只有精品| 久99视频在线观看| 久久久久久人妻| 六月婷婷五月天| 色五月婷婷五月丁香五月| 久久久精久人妻| 久久五月丁香六月婷| 秋霞学生妹一二级| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 99精品视频在线观看| 激情五月天综合| 久操无码| 五月久久婷婷天堂视频| 看久久性爱99视频| 丁香五月天激情网| 99色热综合| 日本特黄aaaaa| www.天天色综合| 日本69日人视频| 五月婷婷啪啪啪| 久久久999精品| 91色噜噜狠狠狠狠色综合| 人人人操| 热99精品视频五月| 久久六月天| 综合色五月天| 91操操| 色婷婷丁香五月|