欧美成人午夜精品久久久,国产?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
返回資訊列表
丁香在线视频| 天天日夜夜爽| 婷婷丁香视频在线观看免费 | 婷婷五月天激情网| www.色9| 久久综合这里只有精品1 | 男人天堂AV在线一区二区| 久久久久9999| 丁香五月情| 玖玖资源天天无码| 亚洲婷婷婷| 99热欧美偷拍| 2022人人操人人看| 久久女人九九| 五月天色色色色色| 五月香蕉网| 丁香五月激情网| 夜夜爽天天干| 久久亚洲激情五码| 五月婷婷人妻| 天天摸天天做天天爱天天爽| 国产视频婷婷| 五月久视频| 我要射综合| 色丁香五月天射婷婷爱婷婷| 午夜丁香| 操一区| 秋霞影音91人妻久久| 综合色情网| 99久热在线精品99re6热| 人人操av| 99热网精品| 亚洲激情五月天| 99热综合网| 97五月天婷婷| www.色五月.com| 亚洲看av的网站| 婷婷色女| 五月天成人手机在线视频| 夜夜 操无码| Caop在线| 人妻久久久久| 丁香八月综合激情| 久久亚洲婷婷| 色综合久久五月天| 九九香蕉网| 色吧五月婷婷| 专区无日本视频高清8| 狠狠色婷婷777| 九九综合| 日日操天堂| 久久精品99国产精品日本| 丁香六月色香蕉视频| 色欲天天综合| 综合99在线| 亚洲婷婷月丁香五月| 天天开心天天色| 五月丁香啪啪啪啪| 欧美婷婷五月激情| 欧美日本另类| 国产成人亚洲综合A∨婷婷| 香蕉国产2013| 99网| 亚洲一级AV在线免费播放| 婷婷九色| 热99视频精品| 丁香六月综合激情| 婷婷99狠狠| 国产亚洲精品AAAAAAA片| 女人被躁到高潮嗷嗷叫小| 亚洲精品又粗又大又爽A片 | 91精品久久久久久久久| 99r这里只有精品哦| 六月丁香基地| 1区2区视频| 丁香九九九九| AV在线不卡播放| 亚洲一级 片内射网站在线观看| 夜夜操天天爽| 超碰99久久| 色狠狠色| 9月色婷婷| 久久99视频| 丁香五月综合图片在线观看| 99这里有精品视频| 婷婷五月丁香四射| 爱之国产色情综合| 婷婷娌伦网| 天天艹夜夜艹| 久久玖玖综合| 婷婷四色成人综合色视| 五月婷婷中文字幕| 五月丁香亭亭AV女优| 欧美视频五区| 婷婷五月天黄色小说| 九九精品热播| 五月婷婷婷色| www.操逼comm| 色综合五月| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 日日操日日射| 99视频精品| 碰碰人人人| 九九人人精品| 激情六月综合| 五月丁香婷婷中文网| 天天干天天做| 日本波多野结衣视频| 99久久玖玖| 亚洲日韩人妻操逼| 色婷婷色99国产综合精品| 成人综合伍月天| 日本久久天堂| 久久总和99| 亚洲色色色色| 男女啪啪做爰高潮无遮挡| 久久精品噜噜噜成人A∨色欲| 女人露出p毛视频www网站| 丁香五月另类小说| 91无码一起草| 99精品久久久久久久婷婷久久| 色婷婷成人网| 丁香五婷婷| 开心五月婷婷激情网| 久久东京热婷婷五月| 国产欧美大香蕉一区| 色综合播放| 五月丁香琪琪| 成人五月天丁香| www.婷婷五月天.com| 少妇AB又爽又紧无码网站| 97自拍视频在线| 野战毛片三一3| 一级操逼大片| 俺去也在线视频| 噜噜噜久久| 99ri在线观看视频| 深爱五月激情| 丁香五月婷婷六月婷婷| 九九在线视频| 欧美99热| 五月丁香亭亭激情操逼网| 婷婷成人综合免费视频| 色噜综| 久久99网| 欧美激情丁香五月天久久婷婷一区| 五月天婷婷操逼视频| 操操熟女| 狼人久草| 久久五月婷综合网| 久久婷婷免费| 婷婷五月花| 五月丁香婷婷综合网色欲| 激情婷婷综合五月少妇| 99久热在线精品99re6热| 激情五月网站| 色拍九九九| 五月婷婷丁香av| 激情五月综合网丁| 色五月欧美| 99狠狠操一| 99热在线观看免费精品| 热99精品视频五月| 熟妇人妻中文字幕无码老熟妇| 日日日,com| 天天操天天操天天操天天操天天操| 国产成人av在线播放| 丁香六月婷婷久久综合| WWW、日本色丁香、co m| 激情综合色婷婷啪啪五月天| 狠狠色丁香| 激情视频综合| 丁香五月色| 成人网在线观看视频| 亚洲人妻一区二区| 99a级片| 激情综合亚洲| 99热这里只有在线| 丁香婷婷五月天激情四射| 丁香五月性爱| 色婷婷丁香香香蕉视频| 99热18| AA丁香综合激情| 婷婷丁香激情五月天色色| 九九久久久综合| 亚洲综合五月| 丁香五月另类小说在线阅读| 中日韩狠狠色| 91色呦哟| 99只有精品| 99视频精品8 | 9热视频在线观看| 草综合网| 五月天婷综合| 日韩AV在线影片| 天天干天天拍| 婷婷亚洲在线| 丁香婷婷丁香五月欧美人| 五月天大香蕉av| 亚洲午夜一区二区| 九九热视频思思| 久久丁香五月| 国产第99页| 色色色色网| 五月天婷婷中文字幕在线播放| www.色9| 五月婷婷综合激情| 亚洲AV网址| 色五月天网| 婷婷色五月开心五月| 狠狠色色| 五月丁香啪啪综合| 狠狠五月激情丁香六月| 丁香六月婷婷综合啪啪| 久热这里只有精品66| 免费国产视频| 色婷婷狠狠久久综合五月| 日本美女上人| 欧美日韩成人一区二区| 欲求不满的人妻| 激情五月五月婷婷| 超碰人人艹| 五月色网| 亚洲综合婷婷六月丁香五月| 五月丁香六月婷婷免费视频| 熟女乱论网| a九九热www| 五月天婷婷色综合| 狠狠色综合久久久久| 丁香五月久久| 亚洲婷婷五月天| 操操自拍| 99色热视频| 99re鈥哸鈥唙| 天天骑天天操| 五月天伊人网| 九九色色| 1024国产| 超碰成人在线观看| 超碰在线人人| 丁香五月Av| 97色欧美| 婷婷五月天久久久| 国产性爱亚洲是图| 另类少妇人与禽zOZZ0性伦| 婷婷丁香久久| 五月丁香久久综合精品| 婷婷丁香六月影视| 狠色狠色狠色狠色狠色网| 亚州精品色情无码A片| 热99免费在线| 激情综合网丁香| 婷婷久久网| 日本一毛片| 六月婷基地| 97超碰欧美中文字幕| 99人人爽| 婷婷久久影院| 天天看A片| 久久久久久综合88| 熟女五月天久久综合| 五月天亚洲最大成人| 激情99热| 色六月视频| 这里只有精品视频一区| 婷婷五月天欧美| 天天狠狠夜夜狠狠2023| 91久久婷婷| 九九久久网| 亚洲激情在线| 91人妻九色大屁股| 久久伊人9| 欧美 日韩 成人在线| 日韩操人| 九九热这里只有精品31| 国产成人AV在线播放| 婷婷五月电影院| 在线色色| 欧美性爱5月天天天看| 婷婷十月丁香| 丁香五月综合| 淫视馆av三区| 国产成人网站在线观看| 好好干av| 久热中文字幕| 潘金莲AAAAAAAAAA| 日本99热| 色欲色香伊人| 色色操| 老师高潮流白浆喷水的A片| www. 五月. com| 99热免费精品| 九九无码视屏| 丁香五月天激情综合| 国产精品美女久久久久AV超清 | 97人人干| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 色综合丁香婷婷| 综合色99| 999激情视频| 99在线观看这里都是精品| 久久九九蜜| 激情久久丁香| www,99热| 五月激情在线| 色婷婷五月天成人网| 色丁香五月婷婷婷| 精品99在线| 狠狠综合网| 婷五月天六| 一起草无码视频| 色婷五月天综合网| 日本精品人妻无码77777| 九九www| 色综合色欲综合天天免费 | 五月丁香久久久| 久青操| 五月激情综合网婷婷| 久久东京热婷婷五月| 亚洲狠狠狠| 夜夜谢天天干| 91一起艹| www.henhenl| 色99久草在线| 欧美97p| 久久精品99| 五月婷婷 自拍| 色之综合网| 超碰国产AV| 婷婷五月丁香青青草在线| 日夜操B| 五月丁香五月综合欧美| 偷拍99在线视频观看| 色五月婷婷天天干| 韩日在线熟女| 久久久久er热| 97自拍视频在线| 五月丁香六月激情综合| 99五月婷| 天天爱天天狠天天透| 99精品视频免费观看近期发布| 五月丁香综合啪啪| 26uuu精品国产| 五月天丁香综合久久国产| 婷婷丁香五月综合激情视频| 日韩人妻在线播放| 五月综合婷婷五月| 久久久A级视频| 婷婷六月五月天综合| 操操操97| www色综合| 九久九精品| 欧美色色色| 日韩免费视频| 五月天激情综合10p| 六月成人网| 婷婷六月婷婷| 综合色图婷婷| 五月激情综| 亚洲区在线| 99爱免费视频在线观看| 午夜]香婷婷深深爱| www.成人婷婷综合| 9999热在线观看| 五月丁香婷婷综合视频| 超碰色婷婷| 丁香婷婷大香蕉| 伊人网碰碰| 91碰超| 欧美一级色| 亚洲色啪| 7EzOBIhNq85TO| 色性日本| av国产精品偷| 无码99| 这里只有精品视频看看| 亚洲免费在线观看岛国| 色综合99| 精品人妻久久久久久久| 天堂综合久久| 久久思思热| 热久久视频99| 99re久热只有精品6在线直播.com| 97欧美在线| 日韩成人电影AV| 久久久久久欧美精品se一二三四| 操熟女成人网| 9久久精品| 日产精品一线二线三线芒果| 久久精品视频在这里有| 91chinese在线| 久久精品99国产精品日本| 精品草原久久视频| 五月天丁香网| 五月婷婷综合在线视频| 婷婷五月天久久久| 日本成人噜噜| 亚洲综合在线伊人婷| 牛色色碰| AAA久久久| 五月天激情小说电影| 超碰A V在线| 91无码视频| 狠色狠色狠狠色综合网| 1999天天操夜夜操| 国产乱子轮XXX农村| 五月亭亭性| 色婷婷视频| 色五月噜噜| 91久久久久久久久久久| 色婷婷五月天不卡| 久热这里只有精品性色AV| 五月天丁香婷婷久久九| 六月激情婷婷| 五月 激情视频| 最新午夜理论片| 丁香九月激情久久| 99在线视频操999| 丁香五月综合| 99久久五月婷婷| 天天日夜夜B久久| 婷婷亚洲久久| 99九九这里有免费视频| 国外亚洲成AV人片在线观看| 玖玖爱资源站| 色五月婷婷亚洲最大| 激情婷婷综合| 五月天婷婷色在线视频免费观看 | 9久操| 强壮公让我夜夜高潮A片视频| 婷婷五月草| 久久这里面只有精品视频| 综合色色综合| 98热精品| 玖玖综合色区在线观看| 欧类av怡春院| 国产亚洲精品久久久久久牛牛| 九九精品亚洲| 色婷婷亚洲五月天| 五月婷婷丁香网| 六月丁香综合999| 婷婷五月天av| 九九色影视| 91久草五月天婷婷| www.九月婷婷丁香.com| 在线观看欧美3区| www.婷婷| 国产精品99久久久久久久女警| 久久激情网| 久草狼人| 另类A片| 色五月五月天色婷婷色五月| 五月婷婷丁香五月| 五月天开心网| 婷婷丁香花五月天| 亚洲最大在线| 丁香五月天啪啪| 久久激情五月婷婷| 久久婷婷视频| 开心五月网 | 丁香六月婷婷激情| 日本色爽| 色婷婷偷拍| 色 色 色综合com| 狠狠狠夜夜夜| 婷婷五月精品中文字幕| 99色色网| 开心五月激情网| 色丁香五月婷婷| 五月丁香婷婷综合| 在线中文AV| 97超碰,人人舔,人人操,人人摸 | 性爱综合网| 丁香激情五月天| 国产精品人人做人人爽人人添| 六月婷婷五月丁香| 丁香五月停停av| 九九久久腿| 人妻操日日| 99ri视频在线播放| 国产伦理精品高清在线观看网站一区二区| 天天做天天摸| 五月婷婷色情| 日本VA视频| 另类激情综合| 精品人妻久久久久久| 久久婷婷网| 69久久久| 久久一级AV| 91日韩在线| 日本五月天婷婷丁香| 丁香激情合作五月| 中文网AV| 久婷五月| 97亚洲婷婷| 97成人操| 麻豆观看夏晴子| 色色色免费视频| 五月天成人综合| 六月婷婷影院| 六月婷婷色五月| 婷婷永久在线| 国产无人区大片| 黄色av高清| 色色色综合网| 能看的AV| 人人爽天天爽| 久热91| 中文字幕成人影视| 26uuu成人网| 五月丁香激情深爱婷婷| 亚洲成人电影aaaa| 成人视频九九| 亚洲国产精品成人免费一区久久久在线观看AAAA | 五月婷婷黄色网址| 夜夜嗨一区二区三区直播内容 | 久操热线| 婷婷久久五月| 丁香九月婷婷| 婷婷五月天成人在线视频| 九九人人精品| 综合激情在线视频| 五月婷啪| 精品思思久久| 久热这里只有精品性色AV| 96精品久久久久久久久| 精品久久9| 丁香婷婷色色| 欧洲亚洲免费视频9| 激情五月综合久久| 九九re精品视频在线观看| 婷婷综合一二三| 精品九九网| 婷婷久久在线| 色婷婷五月天成人网| 人妻激情视频| 九九热中文| 99久在线视频| 成人五月天在线观看| 噜噜噜噜婷婷五月天| 热的五码久久精品| 激情综合网,五月| 六月色色综合| www.色擼擼.com| va婷婷| 精品久久久人妻| 五月丁香六月欧美综合网站| 久久 婷婷 五月天| 五月天激情网图片| 这里只有精品96| 超碰一区二区| 中文资源在线a | 久久九九网| 亚洲国产精品VA在线看黑人| 三日本无码| 五月天婷婷激情四射综合| 91亚洲免费片| 激情综合婷婷| 五月社区婷婷激情| 深爱五月激情| 色99网站| 婷婷五月天激情免费在线观看| 99久久大片| 激情图片婷婷丁香五月| 伊人在线视频| 久久免费少妇高潮99精品| txt五月激情四射网综合俺也来了| 丁香视频| 激情丁香久久| 深爱激情婷| 超碰三级片| 99爱精品| AV操一操| 色情婷婷| 六月丁香影院| 成人午夜无码视频| 性爱激情五月| 中文字幕av在线| 婷婷永久在线| 激情av在线| 五月丁香色综合| 91热在线观看视频| 久久丁香| 婷婷激情五月综合| 99热99色| 九月色婷婷综合| 激情丁香五月婷| 五月婷视屏在线观看| 九月婷婷久久| 亚洲图片 丁香婷婷| 色九网| 丁香婷婷六月在线资源观看| 超碰成人在线观看| 亚洲欧美成人在线观看| 九玖视频这里只有精品| 婷婷伊人五月天| 人人爽天天爽| 综合激情专区| 噜噜噜噜在线| 色婷婷婷婷| 五月色丁香婷婷综合| 亚洲成人网无码| 久久99网| 综合久久狠狠| 人人亚洲| 黄网免费看| 精品综合网在线| 视频综合网| 综合在线色婷婷| 国产真人做爰视频免费| www久久99| 岛国AV网站| 五月婷视频| 99精品视频偷拍| 色婷婷五月天天天干天天操天天爽 | 日本无va视频| 亚洲久热| 五月丁香久久久久| 99热这里只有精品86| 福利视频在线播放| 九九Av| 婷婷五月天六月丁香| 亚洲色无码A片一区二区麻豆| 日韩综合天堂| 热99在线精品| 青青草Avb在线| 五月天婷婷色小说| 思思热在线观看| 五月婷婷激情性爱| 五月天色婷婷综合| 中文字幕av久久爽| 婷婷五月天激情五月天网站| 熟女少妇内射日韩亚洲| 99热 在线观看| 天天肏视频| 五月香蕉婷婷| 一本色道久久综合狠狠躁小说| 婷婷五月天天| 婷婷五月免费在线| 国产又爽又猛又粗的视频A片| 婷婷久久综合久| www.maotanji.com| …亚洲黄色在线播放日韩、av中文a…| 这里只有精品在线看| 国产日韩精品SUV| 激情久久四色| www.久久99| 九九视频免费| 激情五月天色色网| 五月天婷综合网站| 人妻AV在线| 天天日日人| 亚洲综合九九| 丁香五月狠狠在线观看| 色99色| 女人天堂av| 亚洲精品V天堂中文字幕| 婷婷久久久久久久| 国产精产国品一二三在观看| 噜噜噜噜在线| 久久久久久久,99精品视频| 五月丁香无码| 五月丁香婷婷99| 丁香色婷婷| 2016日日夜夜操| 丁香婷婷色色| 五月婷在线| www.婷婷五月天| 国产阿姨日皮艹逼内射视频| 国产精品第一国产精品| 丁香五月激情婷婷| 色原狠狠综合| 五月天婷婷影院| 金桔一区二区ab地址| 九九色热| 色播婷婷五月天| 色久一| 九九热re99re6在线精品| 色色免费网站| 裸睡玩奶头(高H)| 日本在线噜噜| 日本久久9| 五月婷精品| 七七九九色色| 99re久热| caop在线视频| 五月婷婷这里都是精品| 啪啪色激情五月天| 99热综合网| 五月天快乐开心激情网| 婷婷五月天成人视频| 久久精彩视频| 第四色色六月色综合| 伊人热在线大香蕉| h亚洲| 热久久思思热思思| 国产91在线视频| 狠狠色噜噜狠狠狠狠综合| 思思热99er在线视频| 色综久久久| 五月婷婷亚洲| 日韩久久这里只有精品| 亚洲综合另类| 亚洲精品又粗又大又爽A片| 色狠久| 婷婷亚洲日本| 操逼视频网址| 99热这里只有精品青草| 色色丁香激情五月| 五月婷婷无码| 色婷婷无吗| 婷婷五月天基地| 性生活久久朋友人妻| 啪啪激情网| 91综合视频丁香| 五月丁香色色网| 激情九九这里只有精品| 久99| 日本三日本三级少妇三级66| 天天操天天插| 天堂五月婷婷| 激情开心五月亚洲| 久久99免费视屏| 4399精品一区二区| 丁香五月激情五月| 激情综合在线观看| 狠狠操婷婷| 狠狠色五月激情| 激情丁香五月AV| 少妇伦子伦精品无吗| 99热青青草| 丁香五月天BBw| 婷婷丁香人妻天久久| 99色视| 成人国产网站在线免费看| 五月婷婷久久综合| 丁香六月婷| 亚洲人人操BD| 久色成人| 99久久丝| 26UUU欧美激情一区二区| 色综合女人99| 亚洲中文字幕在线观看| 色色色网站| 婷婷九九| 婷婷丁香六月| 久久亚洲激情五码| 丁香婷婷色五月天| 婷婷六月色丁香视频在线观看| 开心五月综合激情网| 丁香五月婷婷亚洲天堂| 综合久久五| 国产精自产拍久久久久久蜜| 婷婷五月色播放| 人人干99| 色九亚洲| 久久精品系列| 十一月婷婷激情四射| 思思精品热在线| 先锋av性爱成人电影| 色色色在线播放| 精品视频这里只有精品| 亚洲精品亚洲人成人网| 大香蕉婷婷丁香视频在线| 成人网丁香五月| 五月天婷婷色色首页| 亚洲综合碰| 色啪久 | 超碰人人99| 九九综合图片网| 综合激情九月婷婷,激情综合婷婷中文字| 婷婷香蕉精品| 玖玖爱伊人网| 激情亚洲五月| 就爱日五月天| 伊人超碰在线| 丁香五月婷婷综合激情啪啪啪啪啪啪啪 | 日日干日日| 中文在线成人| www.91操| 99热.com| 亚洲激情av| 五月婷在线| 99视频只有精品| 激情第四色| 4399无码视频| 蒲京久久无码视频| 热996精品在线观看| 9超碰在线| 熟女啪啪视频| 97操在线视频| 婷婷五月天视| 小视频一区| 五月丁香婷婷成人综合网| 丁香五月亚洲| 热99免费在线| 色婷婷丁香五月| 亚洲色五月婷婷| 五月天婷婷基地| 天天爽天天操| 日韩啪啪视品| 久艹久| 六月婷婷色色色| 色综合中文| 久热久色| 激情网站综合五月天| 久久九九在线视频| 99热只有| 婷婷五月天色色| 免费观看的av| 无码少妇高潮喷水A片免费| 第四色色六月色综合| 婷婷丁香五月天大香蕉| 婷婷射图| 3pAV| 婷婷五月婷| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 99热这里只有精品国产免费| 婷婷六月开心网| 五月天婷婷婷| 久久九九@| 丁香五月天堂网| 六月色丁香婷婷| 色婷婷AV在线| 色色色色色五月丁香| 996er在线观看| 婷婷五月天另类网站| 激情五月丁香亭亭| 亚洲色婷婷| 五月婷婷玖玖综合玖玖爱| www色婷婷com| 99热国内| 色五月丁香伊人五月| 日韩成人网址| 亚洲乱码日产精品BD| www.99热这里精品| 色九网| 色天堂在线| 色播五月丁香婷婷| 亚洲亚洲永久无码777777| 婷婷色啪| 欧美日本韩国亚洲| 日本操碰碰| 一區四區歐美日韓| WWW.桔色成人.COM| 99热亚洲| 欧美日韩成人在线网站| 婷婷五月色影视先锋| 国产欧美va| 久久97| 亚州第一A片| 99丁香五月婷| 狠狠色噜噜狠狠狠狠综合| 国产精品色色| 97碰人人操| 五月花婷婷最新| 五月丁香六月色| 国产99热| 成人欧美日韩| 五月婷婷九月婷婷九月婷婷| 26uuu日韩| www.色色com| 色色丁香五月婷婷| 国产熟女一区二区三区五月婷| 国产av天天插天天操天天爽| 五月久久婷婷丁香| 国产色五月婷婷| 五月丁香综合| 久热69| 无月播播激情在线观看视频| 夜夜爽天天干| 日韩精品超碰在线观看| 激情网站五月| 碰超99| AV免费在线网站| 丁香婷婷六月天| 这里只有精品免费视频| 久久sp免费视频| 天天影视色综合网| 99热在线播放| 九九色99| 丁香六月婷婷久久综合| 99九九这里有免费视频| 无码中文一区二区三区| 五月天婷婷久久| 91视频久久久| 性色99| 亚洲妇女熟BBW| 久久婷婷六月| 9久精品视频| 色娸娸综合网| 五月激情综| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 狠狠色大香蕉| 婷婷激情五月天小说| 国产伦亲子伦亲子视频观看| 五月丁香六月色婷| 91九色国产| 91青娱乐青青草| 色中色综合| 九九九AAA热视频| 丁香五月婷婷乱| 疯狂做受XXXX高潮A片| 五月天日日操夜夜操| 久久婷五月婷| 国产67194| 色婷婷9| 色噜噜狠狠色综合网| 思思热精品在线| 天堂网色婷婷| 丁香五月欧美色综合| 极品人妻VIDEOSSS人妻| 丁香六月婷婷高清| 免费做A爰片77777| 激情www.98com| 曰韩少妇内射免费播放| 五月婷婷久久爱| 亚洲国产精品成人午夜| 伊人国产婷婷五月天| 610018岁成人视频| 五月丁香婷婷婷婷综合网| 日韩人妻AV在线| 人人人va亚洲视频在线| 91久久网站| 99无码黄色视频| 欧美月久久| 玖玖午夜视频| 精品久久99| 久青草影院| 深爱激情五月天色婷婷| 色狠狠色噜噜AV天堂五区| 激情 婷婷 插| 色婷婷99| 色六月天| 久久久噜噜噜www成人| 泰州成人视频| 色五月天堂| 九九热最新地址| 久久这里只有精品07 | 国产黄色一级片| 97精品自拍| 亚洲思思热久| 久草热8精品视频在线观看| 丁香色啪综合| 91久久人人操| www.99久| 色丁香五月婷婷婷| 这里只有精品96| 夜夜操,天天撸| 五月天久久www| www.99热| 夜夜操天天爽| 日本色天堂| AV人人操| 99思思热只有在这里看| 久婷婷色| 九九热只有精品| tingtingzonghewang| 97涩婷婷婷婷基地| 97碰久久| 99久久成人| 91传媒无码人妻精| 狠狠色综合网| 伊人干练久| 国产精品国产| 色五月激情五月| 99亚洲日韩| 99热精品在线| avh片在线观看| 91精品国产99久久久久久天美| 五月丁香啪啪啪免费看| 伊人大综合| 久久九区| 99视频网| 97色婷| 久久综合最新网址| 久9久9久9久9久9久9| 五月丁香婷中文字幕| 99热线观看9| 九九av| 激情99| 久久这里都是精品视频| a色婷婷| 精品夜夜澡人妻无码AV| 综合激情视频| 婷婷激情另类| 色九月婷婷丁香| 99ER热精品视频| 五月久久婷婷| 色永久| 狠狠干五月天婷婷网| 婷婷久久天堂网| 热九九精品| 五月狠狠| 国产精品成人av在线观看春天| 伊人久久大香网| 欧美日韩精品一区二区三区钱| 超碰在线看| www.激情| 99热99热不卡| 色综合爽| 日亚二欧美| 99精品热| 五月天激情久久| 婷婷激情蜜桃玖玖丁香| 婷婷五月色综合| www.久操| 欧美黄色一级录像| 色丁香五月婷婷| 亚洲第一第二网站| 色婷婷AV五月天| 99久热在线精品| 色色五月婷婷久久| 91综合网| 亚洲无AV在线中文字幕| 草草视频91| 996er热| 久久 视频这里只有精总| 99热日韩这里只有精品| 五月丁香综合在线| 久久大香免费| 五月综合激情网| 中字幕视频在线永久在线观看免费| 五月丁香婷婷色色| 超碰资源在线| 久久五月天激情| 色丁香五月综合网| 人人色性网| 激情六月丁香综合| www.狠狠| 99福利导航| h亚洲| 天堂综合久久| 日日操夜夜操中国无码| 五月婷婷 激情按摩| 搡BBBB搡BBB搡五十| 天天干天天操天天爽| 91啪啪视频| 九九色人| www99在线观看视频| 天天干,夜夜爽| 噜噜狠狠色综无码久久合欧美| 淫水导航| 91色情播放| 五月丁香欧美综合免费视频| 亚洲婷婷婷| 六月丁香婷婷开心综合基地| 性爱AV天堂| 婷婷五月天成人五月天| 亚洲婷婷五月天在线激情综合网| 91丨九色丨熟女| 五月丁香色| 丁香色色网| 亚洲中文字幕网| www.久久| 婷婷色五月婷婷姐妹| 丁香综合婷婷开心激情网| 激情深爱五月婷婷| sS丁香五月婷婷| 综合久久婷婷五月丁香| 日韩一66精品| 森林影视大全,最好看的2019年视频 | 久婷五月| 午夜婷婷久久 | 狠狠操在线视频| 五月婷婷开心亚州在线| www.色五月.com| 丁香五月激情五月开心五月| 九九视频在线观看| 香焦网五月天| 欧美久久婷婷| 丁香五月激情五月| 国外亚洲成AV人片在线观看| 亚洲无AV在线中文字幕| 九久久九精品视频| 久久码久久无清| 99碰视频| 五月婷婷色色| 天天拍夜夜爽日日| 五月婷婷激情69| 天天做夜夜爽| 五月天丁香综合| 日日天天干| 亚洲深喉aV| 人人97操| 天天日夜夜欢| 日日日日做夜夜夜夜无码| 97婷婷丁香五月| 午夜色丁香| 久久东京热婷婷五月| www久| 色婷婷小说网| 美女婷婷激情亚洲| 五月丁香综合影院| 色久播播| 久热视频这里只有精品68| 人妻精品一区二区三区| 亚洲激情网| 亚洲亚洲人成综合网络| 色综合久网| 五月婷婷在线丁香| 伊人日日干| 激情五月综合婷婷| 思思热在线观看| 日韩乱轮AV| 九九热99视频在线| www。88热在线视频免费观看| 色噜综| 国产婷婷五月天| 国产av天堂| 4438全国最大视频成人网站在线观看 | 9久热免费视频99| Av性爱网站| 丁香五月天激情视频| 欧美25p| 婷婷五月天 丁香五月天 裸体| 日韩99视频| 色婷婷五月网| 狠狠爱五月婷婷| 麻豆AV一区二区三区| 亚洲一区二区无遮挡A片| 思恩热国产视频右线观看| 婷婷丁香色情五月天| 夜夜爽天天干| 青柠影视免费高清电视剧| 婷婷七月丁香色色| 777精品成人a v久久| 久久久大香蕉| www.超碰97| 99操碰| 五月婷六月婷婷| 人妻内射视频| 日韩无码乱轮| 天天天添天天操| 久久五月天色婷婷| www五月婷婷| 婷婷五月天成人五月天| 色偷偷五月天| 久久小说网| 99热欧美| 亚洲婷婷五月天| 中文字幕乱码亚洲精品一区| 中文无码婷婷| 俺去也五月| 精品久久久人妻| 大香蕉九九操| 久色国产| 丁香五月成人| 在线天堂9| 99精品福利视频| 又大又粗九一在线| 91爱操| 特级西西4444www无码| 亚洲综合网在线| 另类色视频| 欧美日韩成人在线网| a免费在线| 亚洲成人电影aaaa| 婷婷五月天网| 97成人在线视频| 99在线看片| 五月婷婷激情| 欧美影院婷婷| 九月激情综合| 婷婷五月综合色中文字幕| 五月天无码视屏播放| 国产精品久久..4399| 久久999久久999久久999久久| 天天干天天射色综合| 少妇高潮呻吟A片免费看软件| 久久婷婷五月天| 九九色影视| 成人免费超碰| 色婷婷综合五月| 婷婷大香蕉| 色婷婷婷av| 久热人妻| 五月婷婷中文字幕| 久久狠狠干| 综合激情专区| 婷婷基地爱| 欧美日韩精品一区二区三区钱| 天天舔天天摸天天透| 欧美激情综合五月色丁香| 做爱夜夜干天天操| 色五月亚洲| 人人爱干人人爱草| 五月天啪啪| 99在线精品观看99| 激情五月丁香五月| 五月丁香| av中文在线| 九九这里只有精品在线视频| 五月天成人小说| 丁香六月婷婷激情综合| 97久久超碰| 丁香五月婷婷亚洲人| 高清无码入口| 五月激情六月| 大香蕉手机视频| 激情五月天开心网丁香无码| 69精品人人人人| 激情五月图| 九九在线视频| 狠狠干激情五月| 亚洲综合色婷婷文学| 五月WWW| 五月丁香趴趴| 日韩99视频| 成人片在线播放| 大香蕉婷婷| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 日韩精品99久久| 久久婷婷五月综合激情国产 | 精品色情一区二区三区四区| 五月婷婷狠狠久久| 亚洲字幕AV一区二区三区四区| 思思热99er在线视频| 九九99久久| 思思热在线精品视频网站| 26uuu成人网| 久久人妻精品| av在线激情| 婷婷丁香六月| 婷婷之六月丁香| 99热精品网| 丁香狠狠色婷婷| 亚洲色色色色色| 97在线99| 开心激情综合| 国产婷婷五月天| 99热婷婷| 丁香5月婷婷| 久久综合影院| 久久五月视频| 无码中文一区二区三区| 九九Y精品热播| 99ri国产在线| 五月丁香综合啪啪啪啪啪| 99婷婷狠狠成为人免费视频| 天天综合在线网| 级情九色| 777精品久无码人妻蜜桃| 丁香六月色婷婷| 日本一道久久| 牛牛热这里只有jingpin| 久久婷婷六月综合| 色碰碰| 久综合网| 久久九九在线视频| 婷婷丁香五月激情密臀av| 91丨九色丨东北熟女| 日日爽日日操| 六月婷婷日| www.夜夜| 丁香五月婷婷在线观看| www.久久| 日木WWW视频| 免费婷婷| 天天天天做夜夜夜夜做| 久久婷婷综合基地| 中文中文在线| 五月天婷婷基地| 久久视频婷婷视频| AV九九| 婷婷网五月天|