Excel高級應(yīng)用VBA實驗題目解析.._第1頁
Excel高級應(yīng)用VBA實驗題目解析.._第2頁
免費預(yù)覽已結(jié)束,剩余13頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Esy021、選定 sheetl 工作表,合并 A1: C1 單元格,并輸入“ TEST”,背景顏色設(shè)置 為淺黃色,字體顏色設(shè)置為紅色,字體大小設(shè)置為 10 磅。Sub Macro1() Macro1 Macro 宏由 xu 錄制,時間 : 2013/3/26 Application.Left = 201.25Application.Top = 61.75Range(A1:C1).SelectWith Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlBottom.WrapText = False.Orientatio

2、n = 0.AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder =xlContext .MergeCells = FalseEnd WithSelection.Merge Range(A1:C1).Select ActiveCell.FormulaR1C1 = TESTRange(A1:C1).SelectWith Selection .HorizontalAlignment = xlCenter .VerticalAlignment =xlCenter .WrapText = False .Orienta

3、tion = 0 .AddIndent = False .IndentLevel= 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = TrueEnd WithWith Selection.Font .Name = 宋體 .FontStyle = 常規(guī) .Size = 10 .Strikethrough= False .Superscript = False .Subscript = False .OutlineFont = False.Shadow = False.Un derli ne = xlU nderl in

4、eStyleN one.Colorl ndex = 3End WithWith Selectio n.I nterior.ColorI ndex = 6.Pattern = xlSolid.Pattern ColorI ndex = xlAutomaticEnd WithEnd Sub2 在 sheet1 上創(chuàng)建“窗體”命令按鈕并指定“宏”代碼 sy22,補(bǔ)充代碼完成:從鍵盤輸入一個整數(shù) n,輸出如下圖形。其中每個“ * ”在單元格中水平和垂直 方向都要求居中。1(ABCDEFGHi *2*3* * *4* * *5* * * * * *673I0B1團(tuán)gSub sy22()Dim n As

5、Integer, i As Integer, j As Integer 第 1 空n = InputBox(輸入行數(shù))從鍵盤輸入數(shù)據(jù)并存放到變量 nSheets(Sheet1).Cells.ClearContents 清除 sheet1 工作表中單元格的內(nèi)容For i = 1 To n循環(huán)打印,輸出 n 行*For j = 1 To 2 * i - 1每行輸出奇數(shù)(2*i-1)個*,如:1, 3,5 個Cells(i, n - i + j).Value = *Next jNext iCells(1, n).Activate激活 A 列 N 行的單元格ActiveCell.Curre ntReg

6、io n.Select 選定單元格所在的當(dāng)前區(qū)域With Selectio n.Fo nt.Size = 16字體大小.Fo nt.Bold = True字體加粗.Horizo ntalAlig nment = xlCe nter 水平方向居中.VerticalAlig nment = xlCe nter垂直方向居中End WithEnd subEsy031. 調(diào)用 EXCEL 的 RAND 和 INT 內(nèi)部函數(shù),在 A 列的 110 行輸入序號 110 , 在B 列的 1 10 行填入 0 1 之間的隨機(jī)數(shù), 在 C 列的 1 10 行填入兩位正整數(shù), 最后在 C 列的 11 行求出該列的最

7、大數(shù)(調(diào)用 MAX 函數(shù)) 請參照程序上下文補(bǔ)充完整的語句Sub sy31()Dim k As IntegerDim a As String, b As String, c As StringFor k = 1 To 10 a =A & kb = B & kc = C & kRange(b).Value= Rnd() 填入 0-1 之間的隨機(jī)數(shù)Range(c).Value= 10 + Int(90 * Rnd()1-10 行填入兩位正整數(shù)Next kSet myr = Worksheets(Sheet1).Range(C1:C10)Ran ge(c11) = Works

8、heetFu nctio n.Max(myr)在 C 列的 11 行求出該列的最大數(shù)(調(diào)用 MAX 函數(shù))End SubEsy04輸入一個字符,判斷該字符是字母字符、數(shù)字字符還是其他字符,并用 Msgbox 函數(shù)輸出結(jié) 果。分析:用 IF 語句實現(xiàn)Sub pdzi()Dim strC As String 定義變量 strC 為字符型strC = InputBox(請輸入字符)第 1 空,利用 InputBox 函數(shù)輸入字符放到 strC 中If UCase(strC) = A And UCase(strC) = 0 And strC = 90第 2 空ActiveCell = 優(yōu)Case Is

9、 = 80ActiveCell = 良Case Is = 70ActiveCell = 中Case Is = 60ActiveCell = 及格 Case ElseActiveCell = 不及格 第 3 空End SelectEnd Sub4 :打開 Excel 工作簿 EC404.xls,在 A2 , B2 和 C2 單元格輸入 a, b, c 的值,單擊最大值 按鈕,在D2 顯示這三個數(shù)的最大值。解題思路:假設(shè)三個數(shù)中的第一個數(shù)是最大值,用這個假定的最大值分別跟剩下的兩個數(shù)比較,如果假定的最大值小于其它兩個數(shù),則最大值為較大的那個數(shù)。Sub max()Dim a As Double, b

10、 As Double, c As Double, max As Doublea = Val(Cells(2, 1)b = Val(Cells(2, 2)c = Val(Cells(2, 3)max = a 第 1 空If max b The n max = b 第 2 空End IfIf max = 0第 1 空sum = sum + data第 2 空k = k + 1第 3 空data = InputBox(請輸入數(shù)據(jù):)LoopMsgBox 一共輸入了 & k & 個數(shù)。_& vbCrLf & 其和為& sum & 其平均值為:&

11、sum / kEnd Sub實驗 3 :編寫程序計算 SUM=1+1*2+1*2*3”+1*2*3*100的和。解題思路:該題用 Do Loop 結(jié)構(gòu)實現(xiàn)累積與累加,目標(biāo)是求100 項的累加,而每一一項是一個累積式。Sub multi()Dim sum As DoubleDim i As In tegerDim t As Doublei = 1: t = 1: sum = 0Do While i = 100 第 1 空t = t * i第 2 空sum = sum + t第 3 空i = i + 1 第 4 空LoopMsgBox (1+1*2+1*2*3+.+1*2*3*.*100= &am

12、p; sum)End Sub實驗 4:打開 Excel 工作簿 E504.xls ,編寫程序, 將當(dāng)前工作表中第 1 行從指定位置 m 開始 的 n 個數(shù)按相反順序重新排列。例如,原數(shù)列為:1,2,3,4, 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20。從第 5 個數(shù)開始,將 10 個數(shù)進(jìn)行逆序排列,則 得到新數(shù)列為: 1,2,3, 4,14,13,12, 11,10,9,8,7,6,5,15,16,17,18, 19,20。Sub 逆置 ()i = Cells(6, 12) 起始位置j = i + Cells(7, 12) - 1 第 1 空,終止位置

13、Do While i = o And a = Cells(1, s) Then Exit ForCells(1, s + 1) = Cells(1, s)Next sCells(1, s + 1) = ar = r + 1Next空 ,從后往前掃描 第 4 空,退出本層循環(huán) 第 2 空,移動數(shù)據(jù)插入數(shù)據(jù)第 3 空 ,修改目標(biāo)數(shù)據(jù)區(qū)長度 第 5 空實驗 3:在“ D:Esy06 ”文件夾下打開文件EC603.xls ,“求任意區(qū)域數(shù)值總和”按鈕指定到NextNextbs = bs + 1 第 4 空, #4# Loop While bs = m 第 5 空, #5#End SubEsy07實驗

14、1 :打開文件 E701.xls ,“一維數(shù)組求極值”按鈕指定到名稱為“一維數(shù)組求極值”的 宏,補(bǔ)充宏代碼,使之完成如下功能:輸入 10 個數(shù),將這 10 個數(shù)分別放在第 1 行的 10 個 單元格中,求出這 10 個數(shù)的最大值和最小值放在相對應(yīng)的單元格中。Sub 一維數(shù)組求極值 ()Dim E(1 To 10) As Single第 1 空,定義一個名稱為 E,元素個數(shù)為 10 的一維數(shù)組Dim max As Single, min As SingleMsgBox 輸入的 10 個數(shù)據(jù)如下: For i = 1 To 10For 語句的作用是先將輸入的數(shù)據(jù)放到數(shù)組中,然后再將數(shù)組中的數(shù)放到對

15、應(yīng)單元格里E(i) = InputBox(請輸入數(shù)據(jù):)第 2 空Cells(1, i) = i第 3 空Next imax = E(1):min = E(1)For i = 2 To 10If max E(i) Then min = E(i)第 5 空Next iCells(2, 2) = maxCells(3, 2) = min End Sub實驗 2 :打開文件 E702.xls ,“一維動態(tài)數(shù)組的使用”按鈕指定到名稱為“一維動態(tài)數(shù)組的 使用”的宏,補(bǔ)充宏代碼,將整型動態(tài)數(shù)組 X 聲明為具有 20 個元素的數(shù)組,并給數(shù)組的所 有元素賦值 1 。Sub 一維動態(tài)數(shù)組的使用 ()Dim X(

16、) As Integer 第 6 空 ReDimX(1 To 20) 第 7 空For I = 1 To 20X(I) = 1 第 8 空 Cells(I, 1) = X(I) Next IEnd Sub實驗 3 :打開文件 E703.xls ,“統(tǒng)計英語成績”按鈕指定到名稱為“統(tǒng)計英語成績”的宏, 補(bǔ)充宏代碼, 使之完成如下功能: 首先輸入該班人數(shù), 然后再分別輸入該班學(xué)生的英語成績 并將英語成績依次放在第 1 行,將大于平均值的數(shù)據(jù)以紅色字體顯示出來。Sub 統(tǒng)計英語成績 ()Dim E() As SingleDim n As IntegerDim s As Single, aver As

17、 Singlen = InputBox(請輸入該班的人數(shù))ReDim E(n)第 9 空MsgBox 輸入的& n & 個數(shù)據(jù)如下:For i = 1 To nE(i) = InputBox(請輸入英語成績:)Cells(1, i) = E(i)s = s + E(i)第 10 空Next iaver = s/n第 11 空MsgBox 將大于平均值的數(shù)據(jù)以紅色字體顯示出來:For i = 1 To nIf aver z And y + z x And x + z y The n 第 5 空, area = (c - x) * (c - y) * (c - z)A1 / 2 第

18、 6 空Elsearea =這三條邊不能組成三角形!End IfEnd Function實驗 3 :打開文件 E803.xls ,補(bǔ)充宏代碼,完成如下功能:將當(dāng)前工作表中第1 行從指定位置 m 開始的 n 個數(shù)按相反順序重新排列。例如,原數(shù)列為: 1 ,2 ,3 ,4,5 ,6 ,7 ,8,9 , 10 ,11 ,12 ,13 ,14,15 ,16,17 ,18 ,19,20。從第 5 個數(shù)開始,將 10 個數(shù)進(jìn)行逆序 排列,則得到新數(shù)列為: 1,2,3,4,14,13,12,11,10,9,8, 7,6,5,15,16, 17,18,19, 20。Sub 逆置 ()i = Cells(6,

19、12) 起始位置j = i + Cells(7, 12) - 1 終止位置Do While i = 0 And a = 1DO 語句實現(xiàn)字符串的反向,基本思路是從右邊一個一個的截取字符放到給定變量中,變量中的字符串即為反向字符串tempStr = tempStr & Mid(xStr, I, 1)第 15 空I = I - 1LoopyStr = tempStr第 16 空End SubSub 字符反向輸出()Dim s1 As Stri ng, s2 As Stri ngs1 = In putBox(請輸入字符串:)Call In vert(s1, s2)第 17 空MsgBox s

20、2End SubEsy11期中考1、請打開實驗文件夾下的 sy01.xls 文件,完成如下操作:編程序,打印九九乘法表如下。 其中乘數(shù)和被乘數(shù)所在單元格字符格式為加粗,水平居中。ABCDEFGHIJ11 234567Si92113224433695448 1216655101520257661218243036877142128354249g8S 1624324048566410991827364554637281Sub jiujiu()Dim i As In teger, j As In tegerFor i = 1 To 9Cells(1, i + 1).Value = i 第 1 空,#

21、(1)#.Value = i 生成乘法表的第 1 行Cells(i + 1, 1).Value = i 第 2 空,#(2)#.Value = i 生成乘法表的第 1 列 NextiRows(1).Font.Bold = True 第 3 空 #(3)#.Font.Bold = TrueRows(1).Horizo ntalAlig nment = xlCe nterColumns(1).Font.Bold = True第 4 空 #.Font.Bold = TrueColumns(1).HorizontalAlignment = xlCenter 第 5 空 Columns(1).#(5)#

22、 = xlCenterFor i = 1 To 9For j = 1 To i 第 6 空 For j = #(6)#Cells(i + 1, j + 1).Value = i * j 第 7 空 #(7)# = i * jNext jNext iEnd Sub2、請打開實驗文件夾下的 sy02.xls 文件,完成題目要求的操作。Sub 男生分班 ()Sub 男生分班 ()Dim k As IntegerFor Each sht In Worksheets檢查“男生”工作表是否存在,如果存在則刪除If sht.Name =男生Then Sheets(男生).Delete Sheets(男生).

23、# (1) #NextSheets.Add建立男生工作表及表頭信息Range(a1:d1).Merge #(2) #.MergeActiveSheet.Name = 男生 #(3) # = 男生 活動工作表的名字為 “男生”Range(A1:D1).Value = 2000 級男生信息表 Range(A1:D1).#(4)# =2000 級男生信息表 Range(A2).FormulaR1C1 = Sheets(學(xué)生成績).Range(A3).ValueRange(B2).FormulaR1C1 = Sheets(學(xué)生成績).Range(B3).ValueRange(C2).FormulaR1

24、C1 = Sheets(學(xué)生成績).Range(C3).ValueRange(D2).FormulaR1C1 = Sheets(學(xué)生成績).Range(D3).Value- 從“學(xué)生成績表”中提取男生成績并賦值給“男生”工作表 -k = 3k 為男生表中每位學(xué)生記錄的插入位置For i = 4 To Sheets(學(xué)生成績).Range(a65536).End(xlUp).Row 從第 4 行到 工作表最后一行,讀取學(xué)生成績表所有數(shù)據(jù)If SheetsC 學(xué)生成績).Cells(i, 3).Value =男Then如果性別為男,則提取數(shù)據(jù)For j = 1 To 4 j 為學(xué)生數(shù)據(jù)的四個列Cells(k, j) = SheetsC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論