国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

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

VBA實戰(zhàn)指南:玩轉Excel教務掛科統(tǒng)計與自動化報表生成 1. 項目背景為什么教務數(shù)據(jù)要用VBA來處理高校教務管理里掛科數(shù)據(jù)統(tǒng)計是非常高頻的一項工作。學期末考試結束各科成績出來教務員或者輔導員需要回答一系列問題每個班掛了幾科哪個科目掛科率最高哪些學生掛科超過三門需要預警重修名單怎么生成這些問題看起來簡單但當學生數(shù)量上千、科目幾十門、數(shù)據(jù)分散在多個Excel文件里的時候手工處理就變得極其痛苦。我第一次接到這個需求是在某高校期末階段。對方拿來的原始數(shù)據(jù)是一張全校成績總表大概四千多行每行是一個學生的某一門課程成績字段包括學號、姓名、班級、課程名稱、學分、成績。需求也很直接掛科名單、掛科率統(tǒng)計、分數(shù)段分布、以及預警名單掛科超過兩門的要單獨列出來。說實話這些需求用Excel自帶的數(shù)據(jù)透視表和篩選功能也能做一部分但涉及到多條判定規(guī)則、跨科目統(tǒng)計、批量格式化和生成多個報表還是VBA更合適。寫這篇博文就是把這套處理掛科數(shù)據(jù)的完整思路和代碼實戰(zhàn)過程拆開來講。從數(shù)據(jù)清洗、掛科判定、按科目統(tǒng)計、按學生聚合、生成預警名單到最后的報表自動排版每一步都給出可以直接復用的方案。適合輔導員、教務員、教學秘書以及任何處理過這類考核數(shù)據(jù)的辦公人員參考。如果你只會Excel的基礎操作這篇文章會告訴你VBA處理批量數(shù)據(jù)的基本套路如果你已經(jīng)有點VBA基礎也可以從中找到一些邊界情況處理和代碼組織的方法。2. 項目整體設計與思路拆解2.1 先搞清楚數(shù)據(jù)長什么樣拿到數(shù)據(jù)的第一步不是寫代碼而是觀察數(shù)據(jù)。我用的是某高校模擬項目X的成績總表字段和真實教務系統(tǒng)導出的格式基本一致。以下是原始數(shù)據(jù)的一個簡化樣例學號姓名班級課程名稱學分成績20230101張某計科2301高等數(shù)學55820230101張某計科2301大學英語37120230102李某計科2301高等數(shù)學56220230102李某計科2301線性代數(shù)34320230102李某計科2301大學英語355仔細觀察有幾個關鍵點決定了后續(xù)代碼怎么寫一行為一個學生的一門課成績所以一個學生占用多行數(shù)據(jù)。按學生聚合統(tǒng)計掛科門數(shù)就不能用簡單的篩選而是需要按學號分組。成績字段的格式可能不統(tǒng)一有的單元格是文本類型有的看起來是數(shù)字但其實是缺考或緩考字樣。這種臟數(shù)據(jù)必須先清洗。掛科的判定線和課程學分有關不同學校可能有所不同。有的學校60分及格有的課程按五級制優(yōu)、良、中、及格、不及格這些都要在寫代碼前問清楚。2.2 方案選型為什么不用公式和透視表在處理這類數(shù)據(jù)時很多人第一反應是用COUNTIFS加IF嵌套不就行了。確實如果只需要統(tǒng)計個掛科人數(shù)公式完全可以勝任。但這套需求里有一個場景是公式不太好處理的判斷每個學生掛科是否超過兩門并把超過兩門的學生自動歸入預警名單。這樣做是可行的但操作相對繁瑣需要在輔助列里拉公式再對結果做二次篩選。根本的問題在于公式方案是靜態(tài)的。數(shù)據(jù)源一旦更新比如補考成績錄入、緩考學生決定參加考試所有統(tǒng)計結果都得跟著改輔助列里的公式范圍需要重新調整生成的報表還得手工重建。VBA方案是動態(tài)的原始數(shù)據(jù)放在Sheet1運行一次宏自動在Sheet2生成掛科名單Sheet3生成科目掛科率統(tǒng)計Sheet4生成預警名單。下次數(shù)據(jù)更新了再運行一次就行所有流程完全自動化。還有一個原因是邏輯可維護性。把代碼讀一遍就知道成績小于60且不為空算掛科缺考標記為-1也按掛科處理掛科超過2門預警這些規(guī)則寫在哪里。對后接手的人來說理解一套VBA代碼并修改規(guī)則比在一大堆嵌套公式里翻找要容易得多。2.3 整體處理流程梳理整個方案分成五個階段數(shù)據(jù)清洗、基本校驗、掛科判定與統(tǒng)計、學生維度聚合、報表生成。每個階段相對獨立便于單獨測試和調試。第一階段規(guī)范成績字段——把文本數(shù)字轉成數(shù)值、識別特殊標記、剔除無效行。第二階段檢查有沒有缺失關鍵字段的行比如學號為空的學生記錄直接跳過。第三階段遍歷所有成績記錄按課程名稱統(tǒng)計考試人數(shù)、掛科人數(shù)、掛科率同時輸出每條掛科記錄到名單表。第四階段再遍歷一次或者復用前面收集的數(shù)據(jù)按學號匯總每個學生的掛科門數(shù)生成預警名單。第五階段用VBA控制格式設置邊框、列寬、單元格顏色把掛科率高和預警級別高的信息突出顯示。3. 核心邏輯與關鍵代碼實現(xiàn)3.1 字典對象跨行聚合的利器做學生維度的掛科統(tǒng)計時最常用的技巧是使用VBA的Dictionary字典對象。它類似于哈希表可以按學號存儲一個學生的累計掛科門數(shù)。遍歷成績記錄時每遇到一條掛科記錄就在字典里把對應學號的計數(shù)加1。最后把需要預警的學生計數(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這段代碼并不復雜卻解決了最關鍵的按學生聚合問題。成績總表里同一個學生出現(xiàn)多行如果不想辦法聚合就沒法判斷掛科超過兩門。字典在這種場景下的處理思路值得反復參考。建議在處理學生數(shù)據(jù)時先想清楚需要按哪個維度聚合這個維度是否適合作為字典的Key。3.2 成績數(shù)據(jù)的邊界情況處理成績數(shù)據(jù)遠沒有想象的那么干凈這是我在實際處理中遇到最多坑的地方。真實數(shù)據(jù)里常見的情況包括成績單元格顯示為缺考或緩考。這類情況通常要按掛科處理因為學生沒有成績。成績?yōu)榭盏膯卧?。不能簡單判斷為掛科需要先和對方確認空值含義。在我的模擬項目X數(shù)據(jù)里空值表示該學生本學期沒有選修這門課屬于無效記錄應當跳過。成績是文本格式的數(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ī)則。實際部署時這個臨界值應該定義成常量或者放在配置單元格里方便不同院系按各自規(guī)則調整。3.3 按科目的掛科率統(tǒng)計科目維度的統(tǒng)計相對直接遍歷所有成績記錄按課程名稱分組記錄兩個數(shù)字——考試人數(shù)和掛科人數(shù)??荚嚾藬?shù)指該課程有效成績記錄數(shù)排除空值掛科人數(shù)是其中判定為掛科的記錄數(shù)。掛科率就是兩者之比。這個統(tǒng)計邏輯用字典也能實現(xiàn)但字典存的值是數(shù)組會有些別扭。更穩(wěn)妥的方式是直接在內存里維護兩個字典一個存考試人數(shù)一個存掛科人數(shù)。遍歷結束后再合并輸出。或者用更自然的方式——先動態(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è)預警名單。這種細微差別落到代碼里就是一個布爾變量的調整。我的經(jīng)驗是把是否掛科和是否計入預警拆成兩個獨立的判斷函數(shù)。掛科名單里包含缺考和緩考但預警名單只考慮成績60的真實不及格。這樣代碼雖然多了一個函數(shù)但語義清晰也方便應對不同院系的不同規(guī)則。Function IsWarningFail(scoreCell As Range) As Boolean Dim raw As String raw Trim(CStr(scoreCell.Value)) 只有純數(shù)字且小于60才計入預警 If IsNumeric(raw) Then IsWarningFail (CDbl(raw) 60) Else IsWarningFail False End If End Function這種把規(guī)則拆解到函數(shù)級別的寫法是我在多次處理績效數(shù)據(jù)的過程中逐漸養(yǎng)成的習慣。一次性把所有邏輯寫在一個事件處理程序里看起來省事但后期要調整一個規(guī)則時改動影響范圍會比較大容易顧此失彼。4. 完整實操流程與報表生成4.1 環(huán)境準備與數(shù)據(jù)約定實際操作前先約定輸入輸出格式。我用一個獨立的工作簿來處理這類數(shù)據(jù)文件里通常包含四個工作表原始數(shù)據(jù)、掛科名單、科目統(tǒng)計、預警名單。輸入數(shù)據(jù)固定在原始數(shù)據(jù)表中運行宏后會清空其他三個表并重新填充內容。在寫代碼前先確認幾個約定成績在原始數(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 主流程代碼結構整個宏的主體結構如下包含了數(shù)據(jù)清洗、校驗、統(tǒng)計、輸出四個環(huán)節(jié)并結合輸入標題VBA實戰(zhàn)案例處理掛科數(shù)據(jù)的全部需求點。該主過程采用模塊化的設計方便按需裁剪或調試。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(預警名單) 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 按學生聚合預警計數(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 輸出預警名單 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) 門預警 (warnRow - 2) 人。 End Sub寫這段代碼時有一個反復權衡的點預警名單里需要補充學生的班級信息。若在遍歷成績記錄時把學號、姓名、班級對應關系存入字典內存開銷會明顯增加但訪問速度更快。我在模擬項目X里選擇了單獨寫一個GetStudentName和GetStudentClass函數(shù)每次按需在原始數(shù)據(jù)表里查找。學生人數(shù)在兩千以內時速度尚可如果數(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方法。上面之所以用錯誤捕獲方式是因為在部分老版本兼容場景下直接調用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) 設置統(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 自動調整列寬 wsFail.Columns(A:F).AutoFit wsStat.Columns(A:D).AutoFit wsWarn.Columns(A:D).AutoFit End Sub格式化時有一個經(jīng)常被忽略的細節(jié)AutoFit對中文表頭有時不夠友好特別是當表頭文字較長時自動列寬可能讓單元格顯示不全。遇到這種情況建議單獨給表頭列設置一個最小寬度值。wsFail.Columns(A).ColumnWidth 12 wsFail.Columns(B).ColumnWidth 10 wsFail.Columns(C).ColumnWidth 144.5 一鍵運行的入口設計為了讓不熟悉VBA的教務老師也能方便使用我在工作簿中增加了一個刷新報表按鈕并指定宏為ProcessFailData。這樣使用者只需要在原始數(shù)據(jù)表粘貼新數(shù)據(jù)點擊按鈕所有結果就自動更新。按鈕的添加方式很簡單開發(fā)工具選項卡中插入表單控件按鈕右鍵指定宏。如果所在的Excel版本不顯示開發(fā)工具選項卡需要在文件-選項-自定義功能區(qū)里勾選開發(fā)工具。這一步驟對于沒有VBA經(jīng)驗的人來說也可能卡住所以我在交接說明里特意寫清楚了路徑。5. 實操過程中遇到的坑與排查技巧5.1 成績列存在隱藏空格導致比較失敗實際處理中碰到過一個很隱晦的問題成績列的值在表面上是58但實際上是58 數(shù)字后面帶空格或者是全角數(shù)字。這些字符在視覺上和半角數(shù)字幾乎一致但CStr轉換后參與判斷就會出問題。排查這類問題的最快方式是在VBA代碼里臨時輸出每個成績單元格的ASCII碼。我當時用了一個調試小工具逐格檢查才發(fā)現(xiàn)空格的問題。解決方案是統(tǒng)一用Trim加一個自定義的清理函數(shù)把全角字符轉成半角Function CleanStr(text As Variant) As String Dim result As String result Trim(CStr(text)) 全角數(shù)字轉半角 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全角轉半角這段邏輯雖然簡單但它解決了一類非常典型的數(shù)據(jù)導入問題。教務系統(tǒng)從網(wǎng)頁端導出的數(shù)據(jù)經(jīng)?;烊肴亲址惶幚淼脑捄罄m(xù)的學號匹配、姓名匹配都可能靜默失敗。5.2 同一課程名稱表述不一致導致統(tǒng)計被拆開教務數(shù)據(jù)里同一門課在不同老師那里可能表述不同。比如高等數(shù)學在某些記錄里寫成高數(shù)大學英語有時寫成英語。這種情況下科目維度的統(tǒng)計會被錯誤地拆分成兩行掛科率算出來也會偏小。解決思路有兩個方向一是在數(shù)據(jù)源頭統(tǒng)一課程名稱找教務系統(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ōu)化思路有兩個預警名單輸出前已經(jīng)知道哪些學號需要查詢姓名和班級可以邊遍歷邊收集學生信息而不是最后再查。也就是在第一次遍歷時把每個學號對應的姓名、班級存入字典后面直接取用。關閉屏幕更新和自動計算。在宏開頭加上Application.ScreenUpdating False和Application.Calculation xlManual宏結束再恢復。這段小改動通常能帶來三到五倍的性能提升。Sub ProcessFailData() Application.ScreenUpdating False Application.Calculation xlManual ... 原有邏輯 ... Application.Calculation xlCalculationAutomatic Application.ScreenUpdating True End Sub5.4 常見問題速查問題現(xiàn)象可能原因排查與解決辦法運行宏時提示類型不匹配成績列存在文本或全角字符用CleanStr統(tǒng)一轉換數(shù)據(jù)或用IsNumeric先做類型判斷科目統(tǒng)計中同一課程出現(xiàn)兩行課程名稱不統(tǒng)一建立課程別名映射表歸一化名稱后再統(tǒng)計預警名單漏人判斷函數(shù)沒覆蓋缺考標記檢查IsWarningFail邏輯確認缺考與真實不及格的區(qū)分規(guī)則輸出表格沒有邊框/顏色格式化代碼未執(zhí)行檢查FormatOutputSheets是否在主流程末尾被調用數(shù)據(jù)更新后舊結果被保留沒有清空輸出表舊數(shù)據(jù)在輸出前調用ClearOutputSheets先做整表內容清除按鈕點擊后沒有反應宏被禁用文件另存為啟用宏的工作簿.xlsm并在選項里啟用宏學號前導0丟失Excel自動把學號識別為數(shù)字在原始數(shù)據(jù)里把學號列設置為文本格式或從教務系統(tǒng)導出時選文本格式6. 這套方案還可以延伸去做什么處理掛科數(shù)據(jù)只是VBA教務自動化的一個入門場景。同一套思路——遍歷、字典聚合、條件判定、格式化輸出——遷移到其他場景時基本不需要大改。比如說綜合測評排名。原始數(shù)據(jù)換成多個維度的評分項判定規(guī)則換成加權得分計算輸出表換成排名表核心代碼框架可以原樣復用。再比如說選課名單核查。把掛科判定換成沖突檢測判斷邏輯可以檢查同一個時間段內是否分配了兩門課程。再比如畢業(yè)資格審核按學號聚合各學生已修學分和必修課完成情況輔助判斷是否達到畢業(yè)條件。我個人實際使用這套方案時最大的體會就是永遠不要在原始數(shù)據(jù)表里手工改數(shù)據(jù)。把數(shù)據(jù)清洗、統(tǒng)計、輸出分成三個相對獨立的過程每次有新的數(shù)據(jù)文件就新開一個工作簿把原始數(shù)據(jù)粘貼進去運行宏生成結果。這樣原始數(shù)據(jù)永遠可追溯結果也隨時可以重新生成不會出現(xiàn)改了一個單元格結果忘記刷新統(tǒng)計的尷尬情況。另一個經(jīng)驗是交給別人使用的工具界面友好度比代碼優(yōu)雅度更重要。我在最終版本里特意在預警名單表頂部加了一行說明文字提示預警規(guī)則是真實掛科超過兩門避免使用者和教務辦對預警口徑有不同的理解。代碼里每一處規(guī)則都寫了注釋防止半年后自己回來看的時候還得重新猜邏輯。如果你剛接觸VBA建議先拿這個案例的數(shù)據(jù)結構——一張成績表、幾個統(tǒng)計需求——練手。把代碼一行行在本地跑通再試著修改掛科線、增加一個統(tǒng)計維度、或者把輸出格式改得更符合自己的偏好。VBA的學習曲線不算平緩但這種接到一個真實需求解決一個具體問題的學習方式比單純看語法書要有效得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产肏逼网站| 无码操逼网| 老熟妇一区二区三区…| 九九热精品| 精品176精品2| 黑人娇小av在线播放| 国产午夜激片Av毛片不卡| 91N五十路| 中国熟妇| 日本欧美韩国日产片片在线看免| 色五月激情AV在线| 天天躁日日躁xxxxx| 天堂九九九九九九九九九| 嫩草 我啊~嗯~在线| 人人操欧美风骚| 99综合免费视频| 在线色资源| 天天做日日做| 超碰人妻中文在线| 两女互慰AV高潮喷水在线观看| 国产少妇与亚洲av| 国内精品嫩模A∨私拍小视频| 思思性爱| 大屁股熟女一区二区三区| 日本人妻中文字幕 | ,成人免费啪啪视频| 亚洲综合春色| 色臀AV| 成人小说另类在线| 激情文学 亚洲图片| 大奶的诱惑| 国产高清午夜成人在线观看| 国产精品播放| 乱伦日本色图AⅤ| 999综合色| 国产AV激情无码久久无码| 久久九精品| 中文字幕乱码人妻一区二区三区,99精品| 78操B| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 激情啪啪拍91| 久区视频| 蜜臀久久99精品久久久老,,| 国产综合色精品在线观看| 国产嫩草精品A88AV在线| 无遮挡一级毛片视频免费的| 熟女欧美日韩综合婷婷| 日韩无码a片| 在线观看午夜婷婷久久久久清性观看| 日本 欧美 国产一区| 精品无人区麻豆乱码1区2区图片| 日产国产精品中文久久婷婷| 黄色一区二区秘书性感| 美欧色综合| 日日日啊啊啊| 色婷婷视频| 99日视频在线免费| 亚洲精品日韩国产欧美| 97免费视频在线观看| 久久999久| 亚洲精品尤物yw在线影院| 男人把坤坤插入女人的下体| 久久婷婷一区二| 国产91会所女技师在线观看| 欧美 日韩第一性色| 中文字幕日韩综合| 亚洲性爱免费电影| 日韩日韩日韩-国产乱码精品一区二区| 久操视频资源站公开| 九九热精品视频六| 另类视频在线| 熟女突然公开看18禁影片 | 国产精品无码av在线 | 欧美久久毛片基地| 久久久免费一级黄片| 9Ⅰ超碰| 中文字幕一区二区免费在线| 日韩精品人妻中文字有码在线| 婷婷五月天无码 | 久久‘黄片视频| 东京热毛片177b2viP| 午夜后入| 国产亚洲精品自在线亚洲情侣| 伊色久人大在线| 中文字幕视频在线观看一区二区| 欧美色性爱| 日韩熟女精一区二区三区不卡| 欧美一二三区四五区| 成年人一级黄色毛片大全在线观看| 大香蕉日韩| 97AV在线免费观看| 日本一区二区电影网站| 日韩无码黄色片| 91精品丝袜久久久久久| 中文字幕AV片| 国产精品久久久无码AV网站| 99re这里只有精品9| 国产精品久久久久亚洲av| A一区片| 久久激情视频| 中出789在线视频| 亚洲综合成人网| AV麻豆免费一区| 色哟哟av网址| 超碰精品国产无码| 欧美日韩第一页| 蜜臀久久99精品久久久久久-DVD| 亚洲AV无码久久精品蜜桃小说| 婷婷操逼| 丁香色五月 97干| 人人看欧美性爱| 91天天| 99热国产精品| 免费网色网站| 91久久18禁| 精品少妇后入一区二区三区四区人妻巨乳| 男女真人网18| 黄片免费久久久久久久| 成人激情无码在线视频| 国产强奸91| 久久黄人人爽视频| 天天干嫩逼网| 日韩无码服务区| 精品中文日韩字幕视频| 丝袜喷水在线| a男人的天堂| www.91色综合| 五月婷婷综合激情| 久久这里是精品| 中文字幕一区二区视频在线观看| 亚洲影院成人| 97在线免费看视频| 午夜操一视频一区| 啊啊啊啊免费视频| 啊啊啊操死我了| 丰满丝袜少妇AV| 天天干天天中出av| 亚洲综合 欧美| 亚洲 欧美 综合 91| 一区二区国产视频在线观看| 综合色拍| 碰人碰碰人人开房人肉| 青娱乐黄色录像| 久久久久成人网| 欧美一级二级三级| 97在线免费观看| 日本操逼视频免费| 在线无码网站| 香蕉久久AⅤ...| 国产亚洲美日韩Aⅴ中文字幕无码成人| 免费看片黄| 在线岛| 亚洲阿v天堂无码z2018| 日本高清_区二区三区 | 欧美 亚洲 在线| 国产精品不卡少妇白| 综合 亚洲 欧美| 日本欧美不卡| 97精品全部| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 97se综合网| 欧美韩国你懂得在线 | 久久久精品一区二区| 亚洲熟女乱色一区二区三区久久久 | 国产精品动态一区二区三区四四| 欧美色道啊| 青青久草| 亚洲91色| 亚洲 日本 国产 综合| 熟女五十路一区二区三| 日韩无码黄色片| 综合欧美日本三级| 久久久久久久久久久久久久久性生活视频| 精品97久久综合| 亚洲限制级| 久久↗↗| 美女裸体无遮挡永久免费观看网站| av爱爱爱| 秋霞无码av鲁丝片一区| 成人欧美一区二区三区黑人一| 亚洲国产欧美日韩人妻日中文| 九九热免费国产视频婷婷伊人五月 | 婷婷亚洲综合| 神马午夜久久久| 日韩三级在线观看mp4| 另类专区加勒比| 国产乱子伦久久精品综合一区二区三| 搞中出久久| 91粉嫩萝控精品福利网站_精品影音先锋国 | 亚洲 图片 综合91| 欧美激情久| 久久久久久91香蕉国产| 后入福利| 在线人成亚洲视频免费观看| 日本高清久久| 超碰97欧美日韩| 免费视频一二三区| 日韩一区二区三区四区五区| 九九热五区| 啊啊啊水好多| 欧美日韩精品一区二区三区高清| 狠狠躁AV| 久久一区二区蜜桃| 国岛片视频| 综合久欧洲| 久久久久久久久久久久97| 老熟妇91| 综合久欧洲| 欧美日韩性爱操大逼| 亚洲综合影片| 色色青青久久| 国产综合久久久麻桃个| 74成人在线| 久久婷婷精品| 欧美高潮| 久久久久久久亚洲Av无码| 中文字幕五区| 使劲用力艹少妇视频一区二区 | 午夜精品久久久久久久男人的天堂| 精品国产乱码久久久兰草影视| 亚洲天堂一二| 综合伊人激情| 夜夜操天天肏| 校园春色亚洲色图| 久久色激情一区二区三区| 青青草手机在线免费观看| 麻豆av一区二区| 欧亚在线视频| 日韩少妇一区二区三区| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 色欧美天天| 欧美极品色| 琪琪精品免费一区二区三区| 欧美欲色| 欧美性爱无码一区二区三区| 久久熟妇五十路一区| 九九九精品美女| 黄片不用下载在线观看| 99re在线视频这里只有精品| 国产三区免费在线观看| 久久久久人| 老熟妇一区二区三区…| 亚洲综合 欧美| 操www| 九九英色视频| 五月婷视频| 人妻喷水| 乱伦系列一区二区| 精品96久久| 青青青草原| 青青草丝袜在线视频| 东北操逼| 操逼逼无码| 久久久九九| 亚洲乱码国产乱码精网站| 精品人妻一区二区三区夜夜| 成人性爱av| 亚洲精品三| 欧美性爱超碰97| 90后性网国产欧美| 综合亚洲欧美| 久久嫩草国产成人一区| 亚洲欧美不卡线| 熟妇熟女亚洲天堂网| 色香综合天天影视综合| 久久99亚洲精品久久99果| 99精品伊人| 十八禁的黄污污免费网站| 欧美视频激情久久久久久| 久久69精品久久久久久久| 国产a级精品| 伊人一区二区在线播放| 99re这里| 2020中文字幕| 亚洲一区操| 中文字幕一区二区三区蜜桃视频| 久久艹逼视频| 午夜国产综合视频在线观看| 男人成人黄色视频在线观看免费下载| 免费黄色片子| 91色人妻| 天天操天天日天天干| 免费啪啪啪网站18岁| 伊人性在线视频| 午夜精品视频777| 久久午夜色播影院免费高清| 日韩中文字幕宗合在线| 91日韩在线| a片在线播放| 无码男人天堂| 韩国一级婬片A片AAAAA| 亚洲人久久久久日| 欧美熟妇亚洲版| 欧美顶级黄片AAAAA在线免费看| 超碰78| 久久久久亚洲一区女同性恋中文字幕| 亚洲黄色影视| 精品久久久久久AV无码| www.久久超碰| 青青草黑寡妇男人天堂| 吻戏激情性巴克| 在线看的av| 国产馆| 蜜臀色乳| 色老汉玖玖爱| 激情久久久| 久操凹凸视频| 人人操人人色网| 91欧美巨乳| 日韩不卡a级视频专区| 精品少妇一区二区三区| 蜜臀在线看片| 久久久久久久78| 欧美日韩操逼嗦吊| 久久riav中文精品| 日韩无码操逼片| 青草地一本线一区二区三区| 国产精品久久久蜜臀| 色狠狠色| 日韩簧片免费看| 久久久免费视频18| 欧美白嫩在线放| 丁香六月婷婷综合| 无码 黑人一区二区三区| 久久久精品视频欧州站| 天堂精品小草| 大香蕉伊人亚洲| 免费伦费视频在线观看| 欧美五十路熟| 丰满人妻区一区二区三| 深喉吞精| 综合网少妇| 超碰久在线天天做| 91人妻视频在线| 91碰碰碰| 亚洲无吗在线视频| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 人人操人人舒服| 青青在线视频日韩欧美| 亚洲激情深爱文学小说网站| 精品综合久久久久久97| 玖玖草久草99蜜月一区二区三区| 男人干美女| 久久久999日本大片| 思思热久久成人| 欧洲黄色网| 欧美狠狠干| 亚洲天天操| 久久久久女教师免费一区| 少好三P| 蜜臀AV成人精品蜜臀AV久久| 日本三级小说中文字幕| 91 手机在线播放 绯色| 青青草中文-久久青草精品一区二区三 | 91青青在线| 色天天野狼综合社区| 丝袜高跟澳门91视频| 91无码人妻| 国产精品久久发布| 九九毛片这里只有精品| 91人妻超碰| 熟妇熟女视频一区二区三区| 精品国产乱码久久久久久影片| 色五月婷婷五月天| 狠狠 91| A久久| 日韩高潮一区| 欧美大香蕉在线观看| 国产精品交换一区二区| 久久婷综合| 可以看的av| 欧日韩不卡视.频| 吻戏激情性巴克| 东北夫妻性偷拍| 日韩精品高清资源在线| 青青草在线视频欧美| 男人网站婷婷| 欧美影音在线| 亚洲精品黑丝| 亚洲深夜福利| 1级午夜影院费免区| 亚洲天堂AV在线播放| 26uuu国产免费观看| 婷婷综合五月| 蜜色网色哟哟| 中文字幕在在线观看网站| 东北老女人的激情视频| 风月影院男女十八禁| 乱人乱色一区二区三区免费| 久久大黄片| 中文字幕一区二区日韩网| 强奸国产在线| 免费看久久久性性| 97干在线看| 久久婷婷欧美| 91狠狠综| 911粉嫩人妻| 69精品少妇一区二区三区蜜桃| 天美精品av| 亚洲 欧美 另类 日韩 人妻一区| 牛牛久久国产精品视频一二三| 国产人妻一区二区三区欧美毛片| 久久久九| 天天综合网网欲色| 久久透逼视频| 这里只有精品久久| 中文字幕久久精品一区| 色欧美综合| 自拍偷拍 日韩欧美| 99老司机精品视频在线观看| 激情九月婷婷| 97超碰资源网| 97欧美视频| 天天肏天天干| 香蕉人人操tv| 91 在线亚洲| 性色中出| 亚欧操逼片在线观看 | 欧美色交| 亚欧无码在线| 亚洲精品天天影视综合网 | 久久骚少妇| 亚洲十八禁止| 亚洲se91| 欧美国产伊人久久久久| 婷婷伊人| 伊人久久亚洲色欲综合网站| 青青草依人大香蕉| 黄色在线网站| 日韩中字av一区| 日韩91网| 欧美视频一区二区在线| 超碰97玖玖爱| 日本一级特级毛片视频| 99色在线| 天天综合香 ld视频| 少妇内射视频| 国产性久久久| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 99re国产精品视频| 国内操逼视频二区| 3P丝袜熟女 色综合| 国产成人久久精品蜜臀| 牛牛aV| 99re8超碰| 花花AV导航| 国内精品伊人久久久久影院会| 久久超碰免费的| 国产精品视屏| 国产美女高潮叫床视频| 嗯嗯嗯不要不要免费视频| 青青操国产夫妻| 精品久久人妻成人网| 国产亚洲精品美女| 亚洲精品影视老司机| 超碰综合色| 八戒午夜福利理论片| 天天干天天日天天射黄色| 欧美美女视频| 天天流夜夜操| 欧美亚洲激情| 日韩在线视频1234| 加勒比99999| 中文字幕在线观看视频www| 欧美综合777| 久久‘黄片视频| 人妻激情在线视频| 一区二区三区精品视频| 天天操福利视频综合网站| 亚洲超碰AV| 色一区二区三区综合| 婷婷视频在线免费观看| 日日爽熟女| 99碰碰| 死我十八禁| 亚洲熟女中文字幕在线| 日韩熟女精一区二区三区不卡| 99久久婷婷国产综合精品草原| 国产精品丝袜在线| 免费视频一二三区| 丝袜熟女2P| 成人a v在线播放免费| 欧美综合加勒比在线| 女欧美一区二三区| 色综合91| 国产精品免费1区2区视频| 欧美日韩m| 久久国产AⅤ| 综合91网| 成全在线观看免费观看| 国内外毛片在线观看| www.色99| 日本乱人伦片中文三区| 亚洲青色欧美| 色五月婷婷色| av毛片aaaaa免费看| 欧美性爱网97| 一级黄色影片| 欧美成人A√在线一区二区| 色www精品视频在线观看| 少妇滛荡视频| 久久女人| 蜜桃精品视频一区| 日韩成人电影AV| 大香蕉一级黄色片久久| 97在线无精品 | 久操视频资源站公开| 黑人精品欧美一区二区蜜桃| 激情视频网址| 亚洲色婷婷久久久综合日本| 97视频在线观看播放与子乱对白在线……| 91色综合| 99999这里都精品| 男人的天堂不卡一区二区| 97无码视频在线播放| 在线小视频| 白嫩嫩一区| 小视频玖玖| 天天做天天爱| 手机av亚洲丝袜美腿日韩第一页二页| 欧美99热| 黄色AAAAA欧美| 欧洲人妻视频| 激情久久日韩精品中文字幕麻豆| 久操黄色视频| 午夜福利免费福利视频| 国产偷人伦激情在线观看| 黄色十八禁| 夜夜夜久久| 在线观看综合精品亚洲| 人人操人人舒服| 91欧美www| 男人精品天堂一区| 91人妻丝袜无码| 婷婷综合激情| 日韩丰满熟妇| 国产精品99精品视频网站| 欧美亚州综合网图片| 精品96久久| 又黄又爽在线观看视频| 天天激情综合站| 超碰欧美| 久久这里只| 免费国产| 91亚洲丝袜| 91伊人大香蕉| 99re这里只有精品中心播放| 日本岛国黄色网址| 久久久久久国产精品免费网站| 99re欧美| 精品无码一二三四区| 亚洲。日韩。欧美| 97资源制服丝袜| 100啪啪视频大全| 中文字幕一区二区三区人妻不卡| 日韩丝袜高跟制服在线观看| 一区二区精品更新提醒| 91狠狠综合久久久久久| 欧美一区91大爱| 日韩啪啪网| 久久久夜夜嗨免费视频| 欧亚在线视频| 人妻少妇av在线观看| 国产无马视频| 屁屁影院一区二区三区国产| yiqicaoav| 无码粉嫩白虎一线天b区| 99re热| 日欧毛片久久| 亚洲drav色图| 99爱爱| 中国熟女网站| 欧美韩国你懂得在线 | 中文字幕一区二区三区高清| 久久加勒比| 99热这里都是精品| 青草精品视频-日本久久久久网站| 久久线上视频免费看| 中出20p| 黑白配性爱AV成| 国产欧美日产一区二区三区 - 国产欧美日| 大香蕉啪啪啪啪在线| 国产精品网址| 99999精品| 沈阳熟女高潮对白视频| 成人一道本免费视频| 国产一区二区免费福利片| 日本韩国国产精品一区| 91精品久久久久五月天精品| 日韩国产不卡在线视频| blacked精品一区国产| 欧美日韩激情无码专区| 99日精品欧美国产| 色色五月天激情| 97人人干人人操| 啊啊啊操一区| 超碰99在线| 人妻少妇色综合| 亚洲精品久久久久久久久豆丁网| 久久国产视频专区一二三| 亚洲限制级| 中文字幕精品亚洲熟女| 啊啊啊水好多| 欧美国产精品久久九九| 日本日逼高清| 人成午夜免费大片| 国产一区二区三区中文字幕| 97se综合网| 精品久久9| 大香蕉线| 久久9久| 国产欧美精选自拍一区| 先锋色眉乱伦资源| 久久丁香五月婷婷| 青青色综合| 亚州欧美综合| 天天综合~91| 久久久久亚洲AV无码专区少妇| 中文字幕狠狠玩| 日本在线视频导航| 刺激性视频黄页| 啊啊啊好疼| 欧美91在线| 乱伦av麻豆| www…国产操逼| 天堂岛av| 走光一区92下载| 九九热三级片| 国产51色综合久久免费| 欧美少妇熟女| 老熟女中文字幕高清| 96精品久久| 亚洲精品无码成人久久久99| 国产成人久久久精品免费AV| 国产精品国产自产拍高清AV| 91久热| 自拍偷拍草一草| 久久九九99| 色婷婷综合久久久久中文一区二区| 久九干| 青青操日韩| 日本欧美韩国国产在线| 色五月婷婷五月天| 美女毛片999| 在线不欧美| 天天日天天干天天整| 天堂日本亚洲欧美| 欧美 亚洲 在线| 成人无遮挡毛片免费看| 一级性爱aaaa| 在线亚洲精品久久久| 94色色电影网| 9国产超碰| 成人午夜无码视频| 老汉网| 日韩视频中文字幕| 色播五月婷婷| 欧美精品,四区。五区| 五月婷婷丁香六月丁香| 熟女啪啪视频| 97超碰大| 欧美性爱五月天| 欧美白嫩女HD| 综合亚洲欧美精品日韩?v| 成人欧美一区二区三区黑人一| 97久久天天综合色天天综合色电影| 日日摸天天爽夜夜欢| 秋霞视频一区二区 | 福利天堂| 无码不卡八戒| 丝袜狠狠草尤物人妻av91| 美日韩一二三区| 女同女同恋久久级三级| 男人下部插入女人下部| 91一区二匹| 国产精品色色| 色色九区| 丁香五月激情网| 国语精品av| 日本污ww视频网站| 五月天人妻综合| 久久香蕉综合一本到3atv| 熟女高潮合集-永久久久-成人AV| 久久精品国产亚洲AV清纯| 柠檬AV导航| 精品人妻一区二区三区蜜桃视频| 日本在线播放不卡一区| 亚洲脚交| 操老熟女AV| 九九AV| 亚洲美乱| 超碰色97| 欧美综合骚| 秋霞Av理论一级在线| 超碰在线974| 久久久久9999| 日韩97超碰中文字幕| 99超碰网| 后X久久| 亚洲啪啪综合?v一区综合精品区| 国产自产91区13区| 可以免费看黄片的视频| 夜夜操天天肏| 国产资源中文字幕在线| 国产AV天美| 国产精品人妻熟女aⅴ| 色香伊人| 在线观看国产黄色| 日本媚薬中文字幕在线| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 欧美色蜜桃97| 欧美精品999| aV中文麻| 欧洲综合视频| 伊人久久在线视频观看| 欧美专区17页| 天天操天天插| 自拍偷拍国产欧美日韩韩| 二对二中文字幕。| 日韩丝袜二区| 青青在线视频日韩欧美| 日韩国产十八禁| 成人性爱av| 国内精品999| 欧美呦呦性爱| 国产精品夜夜夜| 97在线免费看| 亚洲一级特黄大片在线播放91| 色九九综合AV| 日韩999| 女欧美一区二三区| 呻吟 欧美 日本 中出| 吻戏激情性巴克| 男女猛烈无遮掩视频免费软件| 免费亚洲国产精品久久一区| 婷婷五月色| 日韩性爱免费观看视频| 亚洲伊人青青草| 日韩精品高清资源在线| 亚欧Av| 中文字幕精品探花视频| 精品妇操一区二区三区| 亚洲情色91| 嫩草影院在线观看精品| 亚洲欧美电影| 加勒比av网| 澳门人妻久久| 看一级黄色视频| 一本大道不卡一二三区| 中文字幕国产精品1区| A级片一区| 中文字幕55555| 欧美强奸乱能| 国产伊人精品在线| 亚洲在高跟鞋自慰久久在色线| 国产精品免费视频不卡| 91啦人妻| 精品玖九九久| 午夜综合在线| 日本三级小说中文字幕| 国产精品免费视频人成| 人人人摸人人| 99热这里都是精品| 男人的天堂久久狠| 麻豆久久久久久久久丝袜 | 可以在线观看的黄色网址| 狠日欧美| 久久亚码| 97超级久久强资源| 熟女六十路| 素人一区二区三区日韩| 丝袜美腿亚洲| 夜夜高潮夜夜爽夜夜爱爱一区 | 91精品丝袜久久久久久无码人妻| 色丁香五月婷婷| 激情综合网五月婷婷五月天| 综合影院永久入口国产| 欧美天天综合网版| 96一区二区三区| 免费亚洲国产精品久久一区| 91夜色chaopeng| 亚洲中文字幕97久久精品少妇| 强奸乱伦αv片| 欧美色视频在线| 69XX一中文字幕人妻91| 翔田千里A片一区二区| 久久超碰网| 96精品久久久久久久久| 亚洲图片欧美| 无码人妻精品酒店| 日产操逼| 人人干黄色| WWW啪啪的com| 成年女人黄网站| 日韩欧美成人综合在线| 色综合V| 蜜臀精品1区2区| 一区二区 韩日AV| 免费AV播放| 中文字幕一区二区三区视频播放| 成人性爱美曰韩| 久久久久久国产精品免费网站| 精品久久久久久中文字幕三区| a男人的天堂久久一级A毛片| 99精品九九九九九九| 四虎免费在线播放| 999色欧美中文字幕| 中文字幕午夜精品久久久| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 超碰在线观看av不卡| 亚洲国产精品99久久久| 欧美黄色片在线播放| 欧美性爱免费短视频| 中文字幕,人妻,日韩| 少妇人妻好深太紧了vr91| 精品少妇人妻av久久免费| 国产精品麻豆视频网站| 女性喷水高潮在线观看| 日本操逼aaaaa| 亚洲一卡二卡在线免费| 人人操人人操人人操人人操人人操人人人11.CM | 五月天人妻综合| 天天爽入口| 撸无码不卡免费视频| 亚洲资源站| 黄页| 亚洲精品国产精品成人| 黄人人操人人操| 无码精品久久久天天影视| 亚洲国产一区二区入口| 91小视频| 五月天激情小说| 啪啪91| 大香网伊人久久综合网eew| 日韩电影天堂视频一区二区| 97精品97| 91色伦| 亚洲丝袜综合| 日韩免费三级黄片电影| 十八禁的黄污污免费网站| 国产精品熟女乱伦| 天天影视综合网欧美精品| 有码人妻系列| 秋霞福利网| 中文字幕黄色一起草| 秋霞怕怕片| 亚洲成人精品在线一区| 乱伦Av网| 亚洲91极品| 亚洲中文电影| 人妻天天爽| 夜夜嗨一区二区三区三州加勒比| 亚洲天天操| 欧美αv.com| 婷婷伊人| 伊人精品视频| 黄色成年| 老熟女搡BBBB搡BBBB视频| 在线视频日韩欧美国产| 91人人看| 后入日本1234| 人妻色偷色噜| 国产一区二区av综合| 欧亚综合一卡二卡中文字幕| 色诱中文字幕| 欧美日韩妖精91com| 日本孕妇一区二区视频操逼免费看 | 人人妻人人澡人人爽久久av| 精品国产无码中文| 操一区| 亚州 综合 色图| 欧美性夜| 午夜爽爽爽在线观看永久入口姬片| 性爱久久| 四虎在线免费视频| 黄色大片视频在线免费看| 色婷婷九月天天综合| 色五月婷婷五月天| 青草视频人妻在线观看| 激情小说在线视频| 亚洲图片偷拍视频区| 97se综合网| 亚洲se91| 五月综合婷婷久久网站| 日产中文字幕2020| 中文字幕黄色一起草| 欧美αv.com| 青青欧美在线| 亚洲第一视频 欧美风情 日韩| 久久久国产av美女私房| 床上啊啊啊一区二区三区| 亚洲AV在线资源| 日本高清视频xxxx| 日韩精品.久久精品.AV女优.天美传媒 | 青青草亚洲一区| 国产9l 大屁股| 插日本熟女视频| 九九九九日本 | 骚逼高潮久久精品| 无码九九九九| 久久久久久电影| 夜夜高潮夜夜爽| 亚洲天天操| 亚洲色色色| 综合亚洲网| 大黄片做爱的大的| 麻豆性爱视频在线播放| 日本影视久久免费| 成人夜夜爽| 亚洲中文字幕av| 精品毛片久久久精品毛片| 一区二区蜜臀| 永久免费av无码网站国产app| 色香色香欲天天天影视综合网| 日本精品加勒比海一区| 国产色呦呦| 久草精品视频| 欧美丰满少妇xx高潮| 91视频成人福利网站在线一区| 麻豆久久精品亚洲精品88 | 日韩精品怡红院| A一区片| 亚洲射综合网| 最近二区三区视频大全| a网站免费观看| 超碰久超碰久| 天天做天天爽| 97网色| av天堂影视中文在字幕在线中文| 性欧美999| 日本高清久久| 亚洲极品| 乱色视频中文字幕| 亚洲欧美综合图片| 婷婷久久综合| 熟女精品日韩一区二区三区| 骚逼高潮久久精品| 密臀成人视频久久久| 中文字幕精品一区二区精| 男人的天堂在线| av午夜影院在线播放| 日韩人妻精品| 国产精品久久久三级无码| 中文字幕1区2区| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 今日头条成人一区二区三区四虎精品| 久久六六| 91成人在线| 久久精品中文字幕无码l| 精久久久| 中文字幕五区| 国产精品懂色tv影视免费观看| 伊人久久国产免费观看视频| 操操吧亚洲乱伦视频| 天天澡天天爽日日av| 人人妻人人狠人人| 日韩久射综合| 青青草日本无码| 国产福利视频精品视频| 久久九精品| 黄色av一区二区在线| 操久久久久| 爆乳免费黄网站| 欧美天天干| 亚洲色天堂九9| 亚洲色鬼| 亚洲成aⅴ人片不卡无码| 亚洲欧美综合网站| 最近2019中文字幕国语免费版| 欧日韩一二三f区| 国产一区二区三区中文字幕| 日韩黄色片子| 天天干1区2区在线| 色色五月婷| 9久久精品| 九九十八精品| 草莓精品视频| 麻豆精品一区二区三区四区免费观看| 大香蕉99热| 黄色av网站在线播放| 亚洲另类色综合网站| 久操黄色视频| 色婷婷激一区二区三区 | 国产v亚洲v日韩v欧美v片另类| 日韩啪啪啪视频| 我要看免费韩日黄片| 精品视频在线观看精品| 日本黄页视频在线观看| 色情婷婷| 久久久久久一日韩字幕无码| 凹凸 69堂 在线播放| 91 国产丝袜在线放观看| 国产成人免费观看在线视频| 亚洲色图欧美| 欧美大色交| 久久国色天香香蕉| 91成人精品在线播放| 色欲天天综合久久久无码网中文| 色综合20p| 国产精品一二三免费网站| 国产一级不卡在线观看| 天天做天天爱| 亚洲AV在线资源| 99自拍B亚洲 | 久/久精品99看9| 日韩无码a片| 日本Suv精品一区二区| 青青草色插素人| 少妇二级| 中文字幕 国产 精品| 日韩无码操逼片| 青青久草| 久久宗合亚洲| 丝袜喷水在线| 日韩久久三区| 免费黄色A片| 尤物av网站免费在线播放| 蜜臀中文无码午夜| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 床戏久久久av一区二区麻豆| 免費人妻夜夜爽天天爽爽一区| 9久久精品| 久久三| 无码外流操逼视频| 亚洲欧美日韩偷拍色图| 色阁阁AV综合网| 岛国AV一区二区电影| 亚洲操操| 欧美日韩岛国大片在线观看| 欧美精品久久96人妻无码| 熟妇人妻丰满久久久久久久无码| 91久久久久| 中文字幕一二三av| 久久久天美| 91激情国产| 骚日日av| 91日产桃蜜| 天天干18禁| 一起草视频在线| 先锋女优在线观看视频| 欧美91变态| 久久久精品网站| 欧美不卡五十路| 日本人妻伦在线中文字幕| 亚洲精品免费中文字幕| 日韩操p| 国模私拍一区二区三区神乳| 亚洲影院成人| 亚洲?V高清一区二区三区尤物| 九草九九九| 韩国毛片一区二区三区| 色综合超碰超| 伊人久久大香线综合无码| 青青草在线成人视频| 99热超碰| 亚洲熟妇乱女区二区三区| 久久九九99| 久久极品一区二区| 男人的天堂2018东京热啪啪啪| 亚洲色图大香| 天天插天天操| 久久久久9999| 亚洲激情网| 91大学精品激情戏| 天美精品av| 天天爽天天| 精品久久久久,69国产成人精| 在线黄页看毛片| 一区二区久久天天干狠狠| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 欧美日韩亚洲国产中文永久天天看| 福利大香蕉| 97ai亚洲| 黑人娇小av在线播放| 亚洲人妻中文在线视频| 做爱A级亚欧| 99综合| 99自拍B亚洲| 日韩色女精品| 加勒比中文av| 人妻丰满熟妇一区二区三| 久久鲁干| 欧美 亚洲 制服 精品| 欧洲与亚洲欧美精品中文字幕| 情色五月天就去干| 亚洲图片欧美色| 国产精品久久久久无码A√| 伊人久久大香大香线蕉中文| 国产91美女高潮| 妇人噜噜| 91亚洲网站| 亚洲色欲天天天堂色欲网女| 久久精品三级影视| 九九热免费国产视频婷婷伊人五月 | 亚洲天堂资源在线| 亚洲国产精品成人综合| 狠狠激情综合狠狠操中文字幕| AV色天香在线| 91精品少妇搡搡搡| 探花视频免费观看国产专区| 不卡一区二区日本视频| 东京热男人的天堂网| 天堂射| 97爱亚洲| 国产中文精品一区二区在线观看| 激情五月天色播| 日韩图区| 亚洲欧美色图片| 99久久e免费热视| 超碰爽人妻熟女Av| chaopen97久久| 欧美v亚洲v综合v国产v妖精| 久久这里只精品99re66图| 欧美狠狠弄| 久久久青青草| 秋霞无码av鲁丝片一区| 毛片中心9视频99| 大香交| 国产女人高潮嗷嗷嗷叫小说| 嗯嗯啊啊视频在线看| 日韩亚洲97| 成人AV超碰免费在线| 欧美综合区| 人人艹亚洲| 98色网| 干美女人妻| 久久精品欧美一区二区三区不卡| 亚洲综合色网| 免费草草草草草视频| 免费成人在线观看91| 国产少妇肉丝在线观看| 人人爽夜夜玩视频| 日韩中文字幕精品一区在线| 精品少妇一区二区三区免费观看| 超碰在线综合97| 亚洲图片婷婷五月天| 熟妇视频一区二区三区在线观看| 欧美日韩中文字幕不卡| 欧美黑人精品一区二区| 天堂国产AV| 国产强奸无码乱伦| 亚州国产精品乱| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 蜜臀在线网站| 奇米狠999| 欧美日本天堂| 另类亚洲一区二区三区| 国产成人资源| 神马麻豆福利院| 久热大香蕉| 久久久性少妇| 亚洲砖码砖专无区2023| 亚洲国产丝袜在线观看| 最新岛国大片| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 在线岛国新天堂8| 超碰97资源中文字幕| 探花精品 一区二区| 久久超碰爱| 亚洲超碰97|