MSCBSC 移動通信論壇
搜索
登錄注冊
網絡優(yōu)化工程師招聘專欄 4G/LTE通信工程師最新職位列表 通信實習生/應屆生招聘職位

  • 閱讀:19880
  • 回復:1
【例子】第三講 Excel對象綜合應用例子
鄭東文
初級會員
鎵嬫満鍙風爜宸查獙璇? style=


 發(fā)短消息    關注Ta 

積分 140
帖子 27
威望 17571 個
禮品券 0 個
專家指數 5
注冊 2019-1-2
專業(yè)方向 
回答問題數 0
回答被采納數 0
回答采納率 0%
 
發(fā)表于 2019-12-14 17:02:57  只看樓主 

已知某年段學生期末成績表如圖,現(xiàn)需寫一個可按學號查詢學生成績的宏,要求如下:

1)支持一次查詢多個學號記錄

2)反饋查詢結果,結果分查到和未查到兩種情況3)為每條查詢到的成績記錄單獨創(chuàng)建一個WorkBook來保存并按學號加日期命名文件,保存成績的工作表按學號命名。

image.png

image.png

'源代碼

第三講 例子.rar

'按學號批量查詢成績

Sub SearchScoreBySn()

Dim intR As Integer '行號

Dim intC As Integer '列號

Dim Col_SearchSn As New Collection '查詢學號集合

Dim intColIndex As Integer '集合下標

Dim Dic_Score   As Object '成績字典

Dim strSerRes As String '查詢結果

Dim Wb_SerRec As Workbook '保存查詢記錄工作簿

Dim Ws_SerRec As Worksheet '保存查詢記錄工作表

Dim strFileName As String '保存文件名

'>>>讀取查詢學號>>>

intR = 2

Do While (Sheet2.Cells(intR, 1) <> "") '判斷是否讀到最后一行

    Col_SearchSn.Add Sheet2.Cells(intR, 1) '添加到查詢學號集合

    intR = intR + 1

Loop

'<<<讀取查詢學號


'>>>創(chuàng)建成績字典>>>

intR = 2

Set Dic_Score = CreateObject("scripting.dictionary")

Do While (Sheet1.Cells(intR, 1) <> "") '判斷是否讀到最后一行

    Dic_Score.Add CStr(Sheet1.Cells(intR, 1)), intR '以學號為關鍵字,學號所在行為值

    intR = intR + 1

Loop

'<<<創(chuàng)建成績字典<<<


'>>>查詢成績并輸出>>>

For intColIndex = 1 To Col_SearchSn.Count

    If Dic_Score.exists(CStr(Col_SearchSn(intColIndex))) Then '查詢指定學號的成績是否存在

       strSerRes = "查到"

       Set Wb_SerRec = Workbooks.Add ' wb_serrec指向新創(chuàng)建工作簿

       Set Ws_SerRec = Wb_SerRec.Sheets(1) 'ws_serrec指向wb_serrec第一個工作表

       Ws_SerRec.Name = CStr(Col_SearchSn(intColIndex)) '工作表名稱命名為學號

       intC = 1

       intR = Dic_Score(CStr(Col_SearchSn(intColIndex)))

       Do While (Sheet1.Cells(1, intC) <> "")

          Ws_SerRec.Cells(1, intC) = Sheet1.Cells(1, intC) '把成績表的標題字段賦值到ws_serrec第一行

          Ws_SerRec.Cells(2, intC) = Sheet1.Cells(intR, intC) '把成績表的數據賦值到ws_serrec第二行

          intC = intC + 1

       Loop

       strFileName = "D:" & CStr(Col_SearchSn(intColIndex)) & "_" & Date & ".xlsx"

       Wb_SerRec.SaveAs strFileName

       Wb_SerRec.Close

    Else

       strSerRes = "未查到"

    End If

    Sheet2.Cells(intColIndex + 1, 2) = strSerRes '反饋查詢結果

Next intColIndex

'<<<查詢成績并輸出<<<

End Sub



查看積分策略說明
附件下載列表:
2019-12-14 17:02:40  下載次數: 51
第三講 例子.rar (26.31 KB)
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5G NTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網白皮書
  • 8、回復“5GX3”免費領取《 R16 23501-g60 5G的系統(tǒng)架構1
  • 對本帖內容的看法? 我要點評

     
    [充值威望,立即自動到帳] [VIP貴賓權限+威望套餐] 另有大量優(yōu)惠贈送活動,請光臨充值中心
    充值擁有大量的威望和最高的下載權限,下載站內資料無憂
    hyhy
    銀牌會員
    鎵嬫満鍙風爜宸查獙璇? style=


     發(fā)短消息    關注Ta 

    紀念勛章·七周年  
    積分 2910
    帖子 577
    威望 -11414 個
    禮品券 8 個
    專家指數 25
    注冊 2010-6-6
    專業(yè)方向  無線網優(yōu)
    回答問題數 0
    回答被采納數 0
    回答采納率 0%
     
    發(fā)表于 2019-12-30 17:46:13 


    QUOTE:
    原帖由 wx_10259334 于 2019-12-14 17:02:57 發(fā)表
    已知某年段學生期末成績表如圖,現(xiàn)需寫一個可按學號查詢學生成績的宏,要求如下:1)支持一次查詢多個學號記錄2)反饋查詢結果,結果分查到和未查到兩種情況3)為每條查詢到的成績記錄單獨創(chuàng)建一個WorkBook來保 ...

    謝謝樓主分享

    對本帖內容的看法? 我要點評

     
    [立即成為VIP會員,百萬通信專業(yè)資料立即下載,支付寶、微信付款,簡單、快速!]

    快速回復主題    
    標題
    內容
     上傳資料請點左側【添加附件】

    (勾選中文件為要刪除文件)


    當前時區(qū) GMT+8, 現(xiàn)在時間是 2025-04-07 00:55:07
    渝ICP備11001752號  Copyright @ 2006-2016 mscbsc.com  本站統(tǒng)一服務郵箱:mscbsc@163.com

    Processed in 0.511483 second(s), 17 queries , Gzip enabled
    TOP
    清除 Cookies - 聯(lián)系我們 - 移動通信網 - 移動通信論壇 - 通信招聘網 - Archiver