第一篇:VB操作word總結(jié)
請(qǐng)耐心看完:?jiǎn)栴}出現(xiàn)得較復(fù)雜。
我的目的:
將多個(gè)文檔內(nèi)容逐一拷貝粘貼到另一文檔后面
我的方法:
wordapp=new word.application
Set doc = wordapp.Documents.Add
while
pathTemp = App.Path & “temp.doc”
LoadFile rs(“word”), pathTemp
Set doctemp = wordapp.Documents.Open(pathTemp)
doctemp.Content.Select
wordapp.Selection.copy
Set myRange = doc.Range(Start:=doc.Content.End 缺少參數(shù) 3文件不存在 ' '*************************************************************** Public Function ReplacePic(FindStr As String, Optional Time As Integer = 0)As Integer Attribute ReplacePic.VB_Description = “查找FindStr,并替換為PicFile所指向的圖片文件,替換次數(shù)由time參數(shù)確定,為0時(shí),替換所有” '******************************************************************************** '
從Word.Range對(duì)象mysel中查找所有FindStr,并替換為PicFile圖像 ' 替換次數(shù)由time參數(shù)確定,為0時(shí),替換所有
'******************************************************************************** If Len(C_PicFile)= 0 Then C_ErrMsg = 2 Exit Function End If Dim i As Integer Dim findtxt As Boolean mysel.Find.ClearFormatting mysel.Find.Replacement.ClearFormatting With mysel.Find.Text = FindStr.Replacement.Text = “".Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = False End With mysel.HomeKey Unit:=wdStory findtxt = mysel.Find.Execute(Replace:=True)If Not findtxt Then ReplacePic = 0 Exit Function End If i = 1 Do While findtxt mysel.InlineShapes.AddPicture FileName:=C_PicFile If i = Time Then Exit Do i = i + 1 mysel.HomeKey Unit:=wdStory findtxt = mysel.Find.Execute(Replace:=True)Loop ReplacePic = i End Function Public Function FindThis(FindStr As String)As Boolean Attribute FindThis.VB_Description = ”查找FindStr,如果模板中有FindStr則返回True“ If Len(FindStr)= 0 Then C_ErrMsg = 2 Exit Function End If mysel.Find.ClearFormatting mysel.Find.Replacement.ClearFormatting With mysel.Find.Text = FindStr.Replacement.Text = ”“.Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = False End With mysel.HomeKey Unit:=wdStory FindThis = mysel.Find.Execute End Function Public Function ReplaceChar(FindStr As String, RepStr As String, Optional Time As Integer = 0)As Integer Attribute ReplaceChar.VB_Description = ”查找FindStr,并替換為RepStr,替換次數(shù)由time參數(shù)確定,為0時(shí),替換所有“ '******************************************************************************** '
從Word.Range對(duì)象mysel中查找FindStr,并替換為RepStr ' 替換次數(shù)由time參數(shù)確定,為0時(shí),替換所有
'******************************************************************************** Dim findtxt As Boolean If Len(FindStr)= 0 Then C_ErrMsg = 2 RaiseEvent HaveError Exit Function End If mysel.Find.ClearFormatting mysel.Find.Replacement.ClearFormatting With mysel.Find.Text = FindStr.Replacement.Text = RepStr.Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = False End With
If Time > 0 Then For i = 1 To Time mysel.HomeKey Unit:=wdStory findtxt = mysel.Find.Execute(Replace:=wdReplaceOne)If Not findtxt Then Exit For Next If i = 1 And Not findtxt Then ReplaceChar = 0 Else ReplaceChar = i End If Else mysel.Find.Execute Replace:=wdReplaceAll End If End Function
Public Function GetPic(PicData()As Byte, FileName As String)As Boolean Attribute GetPic.VB_Description = ”把圖像數(shù)據(jù)PicData,存為PicFile指定的文件“ '******************************************************************************** '
把圖像數(shù)據(jù)PicData,存為PicFile指定的文件
'******************************************************************************** On Error Resume Next If Len(FileName)= 0 Then C_ErrMsg = 2 RaiseEvent HaveError Exit Function End If Open FileName For Binary As #1 If Err.Number <> 0 Then C_ErrMsg = 3 Exit Function End If '二進(jìn)制文件用Get,Put存放,讀取數(shù)據(jù) Put #1, , PicData Close #1 C_PicFile = FileName GetPic = True End Function
Public Sub DeleteToEnd()Attribute DeleteToEnd.VB_Description = ”刪除從當(dāng)前位置到結(jié)尾的所有內(nèi)容“ mysel.EndKey Unit:=wdStory, Extend:=wdExtend mysel.Delete Unit:=wdCharacter, Count:=1 End Sub Public Sub MoveEnd()Attribute MoveEnd.VB_Description = ”光標(biāo)移動(dòng)到文檔結(jié)尾“ '光標(biāo)移動(dòng)到文檔結(jié)尾 mysel.EndKey Unit:=wdStory End Sub Public Sub GotoLine(LineTime As Integer)mysel.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=LineTime, Name:=”“ End Sub Public Sub OpenDoc(view As Boolean)Attribute OpenDoc.VB_Description = ”打開(kāi)Word文件,View確定是否顯示W(wǎng)ord界面“ On Error Resume Next '******************************************************************************** '
打開(kāi)Word文件,并給全局變量mysel賦值
'******************************************************************************** If Len(C_TemplateDoc)= 0 Then mywdapp.Documents.Add Else mywdapp.Documents.Open(C_TemplateDoc)End If If Err.Number <> 0 Then C_ErrMsg = 4 RaiseEvent HaveError Exit Sub End If
mywdapp.Visible = view mywdapp.Activate Set mysel = mywdapp.Application.Selection 'mysel.Select
End Sub Public Sub OpenWord()On Error Resume Next '******************************************************************************** '
打開(kāi)Word程序,并給全局變量mywdapp賦值
'******************************************************************************** Set mywdapp = CreateObject(”word.application“)If Err.Number <> 0 Then C_ErrMsg = 1 RaiseEvent HaveError Exit Sub End If End Sub Public Sub ViewDoc()Attribute ViewDoc.VB_Description = ”顯示W(wǎng)ord程序界面“ mywdapp.Visible = True End Sub Public Sub AddNewPage()Attribute AddNewPage.VB_Description = ”插入分頁(yè)符“ mysel.InsertBreak Type:=wdPageBreak End Sub Public Sub WordCut()Attribute WordCut.VB_Description = ”剪切模板所有內(nèi)容到剪切板“ '保存模板頁(yè)面內(nèi)容 mysel.WholeStory mysel.Cut mysel.HomeKey Unit:=wdStory End Sub Public Sub WordCopy()Attribute WordCopy.VB_Description = ”拷貝模板所有內(nèi)容到剪切板“ mysel.WholeStory mysel.Copy mysel.HomeKey Unit:=wdStory End Sub Public Sub WordDel()mysel.WholeStory mysel.Delete mysel.HomeKey Unit:=wdStory End Sub Public Sub WordPaste()Attribute WordPaste.VB_Description = ”拷貝剪切板內(nèi)容到當(dāng)前位置“ '插入模塊內(nèi)容 mysel.Paste End Sub Public Sub CloseDoc()Attribute CloseDoc.VB_Description = ”關(guān)閉Word文件模板“ '******************************************************************************** '
關(guān)閉Word文件模本 '******************************************************************************** On Error Resume Next
mywdapp.ActiveDocument.Close False If Err.Number <> 0 Then C_ErrMsg = 3 Exit Sub End If End Sub Public Sub QuitWord()'******************************************************************************** '
關(guān)閉Word程序
'******************************************************************************** On Error Resume Next mywdapp.Quit
If Err.Number <> 0 Then C_ErrMsg = 3 Exit Sub End If End Sub Public Sub SavetoDoc()Attribute SavetoDoc.VB_Description = ”保存當(dāng)前文檔為FileName指定文件“ On Error Resume Next '并另存為文件FileName If Len(C_newDoc)= 0 Then C_ErrMsg = 2 RaiseEvent HaveError Exit Sub End If mywdapp.ActiveDocument.SaveAs(C_newDoc)
If Err.Number <> 0 Then C_ErrMsg = 3 RaiseEvent HaveError Exit Sub End If End Sub
Public Property Get TemplateDoc()As String Attribute TemplateDoc.VB_Description = ”模板文件名.“ TemplateDoc = C_TemplateDoc End Property Public Property Let TemplateDoc(ByVal vNewValue As String)C_TemplateDoc = vNewValue End Property Public Property Get newdoc()As String Attribute newdoc.VB_Description = ”執(zhí)行CloseDoc方法時(shí),將模板文件另存為此文件名指定的新文件.如果不指定,在執(zhí)行CloseDoc方法時(shí),將產(chǎn)生一個(gè)錯(cuò)誤“ newdoc = C_newDoc End Property Public Property Let newdoc(ByVal vNewValue As String)C_newDoc = vNewValue End Property Public Property Get PicFile()As String Attribute PicFile.VB_Description = ”圖像文件名“ PicFile = C_PicFile End Property Public Property Let PicFile(ByVal vNewValue As String)C_PicFile = vNewValue End Property Public Property Get ErrMsg()As Integer Attribute ErrMsg.VB_Description = ”錯(cuò)誤信息.ErrMsg代碼: 1-word沒(méi)有安裝 2-缺少參數(shù) 3-沒(méi)權(quán)限寫文件 4-文件不存在“ ErrMsg = C_ErrMsg End Property 請(qǐng)問(wèn)如何正確殺掉word進(jìn)程?
樓主btl19792008(btl19792008)2005-11-04 17:05:03 在 VB / 數(shù)據(jù)庫(kù)(包含打印,安裝,報(bào)表)提問(wèn) 我的word程序運(yùn)行幾次,在資源管理器中就會(huì)出現(xiàn)很多word進(jìn)程。
我的代碼寫的不對(duì)嗎?
代碼如下:
Dim appTemplate As Word.Application
Dim docTemplate As Word.Document
Set appTemplate = GetObject(, ”Word.Application“)
If Err.Number = 429 Then
Set appTemplate = New Word.Application
End If
Set docTemplate = Nothing
Set appTemplate = Nothing
問(wèn)題點(diǎn)數(shù):100、回復(fù)次數(shù):9Top 樓bbhere(俺是二等小兵(baby,i'll be right here waiting for you))回復(fù)于 2005-11-04 17:31:33 得分 0 markTop 樓province_(雍昊)回復(fù)于 2005-11-04 18:03:37 得分 0 要先QUIT再NOTHING。Top 樓faysky2(出來(lái)混,遲早是要還嘀)回復(fù)于 2005-11-04 19:21:30 得分 0
'引用Microsoft Word X.0 Object Library
Private Sub Command1_Click()
On Error GoTo connecterr
Dim wordApp As Object
Set wordApp = CreateObject(”word.application“)
wordApp.Visible = True
Dim myDoc As Object
Set myDoc = wordApp.Documents.Open(”c:Test.dot“)
wordApp.selection.TypeText(” Hello“)
myDoc.Close '關(guān)閉
wordApp.Quit
'退出
Set myDoc = Nothing
Set wordApp = Nothing
Exit Sub
connecterr:
End Sub
Top 樓faysky2(出來(lái)混,遲早是要還嘀)回復(fù)于 2005-11-04 19:24:16 得分 0 Dim appTemplate As Word.Application
Dim docTemplate As Word.Document
Set appTemplate = GetObject(, ”Word.Application“)
If Err.Number = 429 Then
Set appTemplate = New Word.Application
End If
'**************
docTemplate.Close
appTemplate.Quit
'**************
Set docTemplate = Nothing
Set appTemplate = NothingTop 樓rainstormmaster(暴風(fēng)雨 v2.0)回復(fù)于 2005-11-06 11:01:27 得分 0 沒(méi)有office沒(méi)法測(cè)試,不過(guò)我想你可以參考一下這個(gè):
http://blog.joycode.com/mvm/archive/2004/04/25/20208.aspxTop 6 樓ahlegend(愛(ài)之傳奇)回復(fù)于 2005-11-06 20:51:45 得分 0 QuitTop 樓szjhxu(天野)回復(fù)于 2005-11-06 22:01:48 得分 0 Dim appTemplate As Word.Application
Dim docTemplate As Word.Document
Set appTemplate = GetObject(, ”Word.Application")
If Err.Number = 429 Then
Set appTemplate = New Word.Application
End If
appTemplate.quit
Set docTemplate = Nothing
Set appTemplate = NothingTop 樓zhf_btj(鬧鬧)回復(fù)于 2005-11-15 21:54:47 得分 0 引用四樓
faysky2()
myDoc.Close '關(guān)閉
wordApp.Quit
'退出
Set myDoc = Nothing
Set wordApp = Nothing
這樣應(yīng)該能退干凈了...我的就是..光用Close和Quit.沒(méi)用Nothing就老有多余的進(jìn)程
偶爾試下加個(gè)Nothing就OK了~~~~Top 樓lfh103856111()回復(fù)于 2005-11-16 12:46:09 得分 0 對(duì),注意quit就行了
第二篇:VB操作wincc腳本心得
Vbs 操作wincc畫面腳本總結(jié)
一: 不使用變量單純的操作界面
1.操作某個(gè)畫面中控件的屬性 如 Home1.Pdl(總窗體)下的 畫面窗口2(畫面窗口)
Sub OnClick(ByVal Item)
Dim objCircle Dim screenname Dim pwname Set objCircle= ScreenItems(“圓1”)objCircle.Radius = 60
Set screenname=HMIRuntime.Screens(“Home1”)
//獲取要操作的窗體
Set pwname=screenname.ScreenItems(“畫面窗口2”)
//獲取要操作的控件,這里填入你要操作的控件名
MsgBox(objCircle.Radius)
//輸出圓的半徑
MsgBox(pwname.Picturename)
//輸出當(dāng)前畫面窗口2的名字 End Sub
注意
當(dāng)調(diào)用某窗體下的某控件的某個(gè)屬性時(shí),需要聲明兩個(gè)對(duì)象,一個(gè)接納這個(gè)控件,一個(gè)接納值
例如
Dim object Dim value Set object =HMIRuntime.Screens(“Home1”).ScreenItems(“畫面窗口2”)Set value=object.picturename
2.更改畫面窗口的對(duì)象
Sub OnClick(Byval Item)
Dim opObject Set opObject=HMIRuntime.Screens(“Home1”).ScreenItems(“畫面窗口2”)opObject.PictureName=“Page1.Pdl” End Sub 3.設(shè)置文本
Set titleTxt=HMIRuntime.Screens(“Home1”).ScreenItems(“靜態(tài)文本2”)titleTxt.Text =titleTxt.Text+“EF” //獲取文本的值并追加字符
4.vb 字符串函數(shù)
VB的字符串截取函數(shù)有Left(字符串,n),返回字符串前N個(gè)字符;Mid(字符串,p,n),從第p個(gè)字符開(kāi)始,向后截取N個(gè)字符;right(字符串,n),返回字符串的最后n個(gè)字符。
獲取下標(biāo)
VB中的InStr()函數(shù)與InStrRev()函數(shù):
都是在主字符串當(dāng)中搜尋尋找子字符串,返回找到的子字符串在主字符串中出現(xiàn)的位置; 不同在于;
InStr()函數(shù),從左開(kāi)始向右尋找,InStrRev()函數(shù),從右開(kāi)始向左尋找。
截取 right 和left
獲取長(zhǎng)度 Len 二:操作變量
1.Dim objTag Dim AText Set objTag = HMIRuntime.Tags(“a”)
//獲取變量 objTag.Read
//執(zhí)行讀取
Set AText=ScreenItems(“靜態(tài)文本2”)//獲取控件 AText.Text=objTag.Value //給控件寫入值 objTag.Value =100 //給目標(biāo)變量寫入值 objTag.Write
//執(zhí)行寫入
2.vb 中 Switch 語(yǔ)句的變體
Dim objTag Dim AText Set objTag = HMIRuntime.Tags(“a”)
//獲取內(nèi)部變量a的值
objTag.Read
//必須要有這一步,這是讀取操作,同理如果改寫值必須要有ogjTag.write Set AText=ScreenItems(“靜態(tài)文本2”)
Select Case objTag.Value Case 1 AText.Text=“a” Case 2 AText.Text=“b” Case Else AText.Text=objTag.Value End Select
三.彈出對(duì)話框
設(shè)置
buttons 參數(shù)可以有以下值:
常數(shù) 值 描述
vbOKOnly 0 只顯示確定按鈕。vbOKCancel 1 顯示確定和取消按鈕。
vbAbortRetryIgnore 2 顯示放棄、重試和忽略按鈕。vbYesNoCancel 3 顯示是、否和取消按鈕。vbYesNo 4 顯示是和否按鈕。
vbRetryCancel 5 顯示重試和取消按鈕。vbCritical 16 顯示臨界信息圖標(biāo)。vbQuestion 32 顯示警告查詢圖標(biāo)。vbExclamation 48 顯示警告消息圖標(biāo)。vbInformation 64 顯示信息消息圖標(biāo)。vbDefaultButton1 0 第一個(gè)按鈕為默認(rèn)按鈕。vbDefaultButton2 256 第二個(gè)按鈕為默認(rèn)按鈕。vbDefaultButton3 512 第三個(gè)按鈕為默認(rèn)按鈕。vbDefaultButton4 768 第四個(gè)按鈕為默認(rèn)按鈕。
vbApplicationModal 0 應(yīng)用程序模式:用戶必須響應(yīng)消息框才能繼續(xù)在當(dāng)前應(yīng)用程序中工作。
vbSystemModal 4096 系統(tǒng)模式:在用戶響應(yīng)消息框前,所有應(yīng)用程序都被掛起。
第一組值(0-5)用于描述對(duì)話框中顯示的按鈕類型與數(shù)目;第二組值(16, 32, 48, 64)用于描述圖標(biāo)的樣式;第三組值(0, 256, 512)用于確定默認(rèn)按鈕;而第四組值(0, 4096)則決定消息框的樣式。在將這些數(shù)字相加以生成 buttons 參數(shù)值時(shí),只能從每組值中取用一個(gè)數(shù)字。返回值
MsgBox 函數(shù)有以下返回值:
常數(shù) 值 按鈕 vbOK 1 確定 vbCancel 2 取消 vbAbort 3 放棄 vbRetry 4 重試 vbIgnore 5 忽略 vbYes 6 是 vbNo 7 否
下面的例子演示了 MsgBox 函數(shù)的用法:
Dim MyVar
MyVar = MsgBox(“Hello World!”, 65, “MsgBox Example”)' MyVar contains either 1 or 2, depending on which button is clicked.你要求是有是和否兩個(gè)按鈕那么MyVar = MsgBox(“Hello World!”, 65, “MsgBox Example”)中的65改成4就可以了!
vbs腳本中:
if msgbox(“確實(shí)要啟動(dòng)設(shè)備嗎?”,4,“警告”)=6 then
hmiruntime.tags(“tag1”).write 1
end if
第三篇:Vb操作excel的命令(范文模版)
用VB操作Excel的辦法
[日期:2008-11-23]
來(lái)源:
作者:
[字體:大 中
小] Private Sub Command3_Click()
On Error GoTo err1
Dim i As Long
Dim j As Long
Dim objExl As Excel.Application '聲明對(duì)象變量
Me.MousePointer = 11
'改變鼠標(biāo)樣式
Set objExl = New Excel.Application
'初始化對(duì)象變量
objExl.SheetsInNewWorkbook = 1 '將新建的工作薄數(shù)量設(shè)為1
objExl.Workbooks.Add
'增加一個(gè)工作薄
objExl.Sheets(objExl.Sheets.Count).Name = “book1” '修改工作薄名稱
objExl.Sheets.Add , objExl.Sheets(“book1”)'增加第二個(gè)工作薄在第一個(gè)之后
objExl.Sheets(objExl.Sheets.Count).Name = “book2”
objExl.Sheets.Add , objExl.Sheets(“book2”)'增加第三個(gè)工作薄在第二個(gè)之后
objExl.Sheets(objExl.Sheets.Count).Name = “book3”
objExl.Sheets(“book1”).Select
'選中工作薄
For i = 1 To 50
'循環(huán)寫入數(shù)據(jù)
For j = 1 To 5
If i = 1 Then
objExl.Selection.NumberFormatLocal = “@” '設(shè)置格式為文本
objExl.Cells(i, j)= “ E ” & i & j
Else
objExl.Cells(i, j)= i & j
End If
Next
Next
objExl.Rows(“1:1”).Select
'選中第一行
objExl.Selection.Font.Bold = True '設(shè)為粗體
objExl.Selection.Font.Size = 24
'設(shè)置字體大小
objExl.Cells.EntireColumn.AutoFit '自動(dòng)調(diào)整列寬
objExl.ActiveWindow.SplitRow = 1 '拆分第一行
objExl.ActiveWindow.SplitColumn = 0 '拆分列
objExl.ActiveWindow.FreezePanes = True '固定拆分
objExl.ActiveSheet.PageSetup.PrintTitleRows = “$1:$1” '設(shè)置打印固定行
objExl.ActiveSheet.PageSetup.PrintTitleColumns = “"
'打印標(biāo)題
objExl.ActiveSheet.PageSetup.RightFooter = ”打印時(shí)間: “ & _
Format(Now, ”yyyy年mm月dd日 hh:MM:ss“)
objExl.ActiveWindow.View = xlPageBreakPreview
'設(shè)置顯示方式
objExl.ActiveWindow.Zoom = 100
'設(shè)置顯示大小
'給工作表加密碼
objExl.ActiveSheet.Protect ”123“, DrawingObjects:=True, _
Contents:=True, Scenarios:=True
objExl.Application.IgnoreRemoteRequests = False
objExl.Visible = True
'使EXCEL可見(jiàn)
objExl.Application.WindowState = xlMaximized
'EXCEL的顯示方式為最大化
objExl.ActiveWindow.WindowState = xlMaximized
'工作薄顯示方式為最大化
objExl.SheetsInNewWorkbook = 3
'將默認(rèn)新工作薄數(shù)量改回3個(gè)
Set objExl = Nothing
'清除對(duì)象
Me.MousePointer = 0 '修改鼠標(biāo)
Exit Sub
err1:
objExl.SheetsInNewWorkbook = 3
objExl.DisplayAlerts = False '關(guān)閉時(shí)不提示保存
objExl.Quit
'關(guān)閉EXCEL
objExl.DisplayAlerts = True '關(guān)閉時(shí)提示保存
Set objExl = Nothing
Me.MousePointer = 0 End Sub
=====================================
全面控制 Excel
首先創(chuàng)建 Excel 對(duì)象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application
1)顯示當(dāng)前窗口:ExcelID.Visible := True;
2)更改 Excel 標(biāo)題欄:ExcelID.Caption := '應(yīng)用程序調(diào)用 Microsoft Excel';
3)添加新工作簿:ExcelID.WorkBooks.Add;
4)打開(kāi)已存在的工作簿:ExcelID.WorkBooks.Open('C:ExcelDemo.xls');
5)設(shè)置第2個(gè)工作表為活動(dòng)工作表:ExcelID.WorkSheets[2].Activate;或 ExcelID.WorkSheets[ 'Sheet2' ].Activate;
6)給單元格賦值:ExcelID.Cells[1,4].Value := '第一行第四列';
7)設(shè)置指定列的寬度(單位:字符個(gè)數(shù)),以第一列為例:
ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;
8)設(shè)置指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例:
ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035;// 1厘米
9)在第8行之前插入分頁(yè)符:
ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;
10)在第8列之前刪除分頁(yè)符:
ExcelID.ActiveSheet.Columns[4].PageBreak := 0;
11)指定邊框線寬度:
ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左
2-右
3-頂
4-底
5-斜()
6-斜(/)
12)清除第一行第四列單元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;
13)設(shè)置第一行字體屬性:
ExcelID.ActiveSheet.Rows[1].Font.Name := '隸書';ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;ExcelID.ActiveSheet.Rows[1].Font.Bold := True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;
14)進(jìn)行頁(yè)面設(shè)置:
a.頁(yè)眉:ExcelID.ActiveSheet.PageSetup.CenterHeader := '報(bào)表演示';b.頁(yè)腳:ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P頁(yè)';c.頁(yè)眉到頂端邊距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;d.頁(yè)腳到底端邊距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;e.頂邊距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;f.底邊距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;g.左邊距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;h.右邊距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;i.頁(yè)面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;j.頁(yè)面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;k.打印單元格網(wǎng)線:ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;
15)拷貝操作:
a.拷貝整個(gè)工作表:ExcelID.ActiveSheet.Used.Range.Copy;b.拷貝指定區(qū)域:ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;c.從A1位置開(kāi)始粘貼:ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;d.從文件尾部開(kāi)始粘貼:ExcelID.ActiveSheet.Range.PasteSpecial;
16)插入一行或一列:
a.ExcelID.ActiveSheet.Rows[2].Insert;
b.ExcelID.ActiveSheet.Columns[1].Insert;
17)刪除一行或一列:
a.ExcelID.ActiveSheet.Rows[2].Delete;
b.ExcelID.ActiveSheet.Columns[1].Delete;
18)打印預(yù)覽工作表:
ExcelID.ActiveSheet.PrintPreview;
19)打印輸出工作表:
ExcelID.ActiveSheet.PrintOut;
20)工作表保存:
If not ExcelID.ActiveWorkBook.Saved then
ExcelID.ActiveSheet.PrintPreview
End if
21)工作表另存為:
ExcelID.SaveAs('C:ExcelDemo1.xls');22)放棄存盤:
ExcelID.ActiveWorkBook.Saved := True;
23)關(guān)閉工作簿:
ExcelID.WorkBooks.Close;
24)退出 Excel:ExcelID.Quit;
25)設(shè)置工作表密碼: ExcelID.ActiveSheet.Protect ”123“, DrawingObjects:=True, Contents:=True, Scenarios:=True
26)EXCEL的顯示方式為最大化
ExcelID.Application.WindowState = xlMaximized
27)工作薄顯示方式為最大化
ExcelID.ActiveWindow.WindowState = xlMaximized
28)設(shè)置打開(kāi)默認(rèn)工作薄數(shù)量
ExcelID.SheetsInNewWorkbook = 3
29)'關(guān)閉時(shí)是否提示保存(true 保存;false 不保存)ExcelID.DisplayAlerts = False
30)設(shè)置拆分窗口,及固定行位置 ExcelID.ActiveWindow.SplitRow = 1 ExcelID.ActiveWindow.FreezePanes = True
31)設(shè)置打印時(shí)固定打印內(nèi)容
ExcelID.ActiveSheet.PageSetup.PrintTitleRows = ”$1:$1“
32)設(shè)置打印標(biāo)題
ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ”"
33)設(shè)置顯示方式(分頁(yè)方式顯示)ExcelID.ActiveWindow.View = xlPageBreakPreview
34)設(shè)置顯示比例
ExcelID.ActiveWindow.Zoom = 100
35)讓Excel 響應(yīng) DDE 請(qǐng)求
Ex.Application.IgnoreRemoteRequests = False
Vb操作excel的命令
1.創(chuàng)建Excel對(duì)象
eole=CREATEOBJECT(′Excel.application′)
2.添加新工作簿
eole.Workbooks.add
3.設(shè)置第3個(gè)工作表為激活工作表
eole.Worksheets(″sheet3″).Activate
4.打開(kāi)指定工作簿
eole.Workbooks.Open(″c:templl.xls″)
5.顯示Excel窗口
eole.visible=.t.6.更改Excel標(biāo)題欄
eole.Caption=″VFP應(yīng)用程序調(diào)用Microsoft Excel″
7.給單元格賦值
eole.cells(1,4).value=XM(XM為數(shù)據(jù)庫(kù)字段名)
8.設(shè)置指定列的寬度(單位:字符個(gè)數(shù))
eole.ActiveSheet.Columns(1).ColumnWidth=5
9.設(shè)置指定行的高度(單位:磅)
eole.ActiveSheet.Rows(1).RowHeight=1/0.035
(設(shè)定行高為1厘米,1磅=0.035厘米)
10.在第18行之前插入分頁(yè)符
eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1
11.在第4列之前刪除分頁(yè)符
eole.ActiveSheet.Columns(4).PageBreak=0
12.指定邊框線寬度(Borders參數(shù)如下)
ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3
13.設(shè)置四個(gè)邊框線條的類型
eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1
(其中Borders參數(shù):1-左、2-右、3-頂、4-底、5-斜、6-斜/;LineStyle值:1與7-細(xì)實(shí)、2-細(xì)虛、4-點(diǎn)虛、9-雙細(xì)實(shí)線)
14.設(shè)置頁(yè)眉
eole.ActiveSheet.PageSetup.CenterHeader=″報(bào)表1″
15.設(shè)置頁(yè)腳
eole.ActiveSheet.PageSetup.CenterFooter=″第&P頁(yè)″
16.設(shè)置頁(yè)眉到頂端邊距為2厘米
eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035
17.設(shè)置頁(yè)腳到底邊距為3厘米
eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
18.設(shè)置頂邊距為2厘米
eole.ActiveSheet.PageSetup.TopMargin=2/0.035
19.設(shè)置底邊距為4厘米
eole.ActiveSheet.PageSetup.BottomMargin=4/0.035
20.設(shè)置左邊距為2厘米
veole.ActiveSheet.PageSetup.LeftMargin=2/0.035
21.設(shè)置右邊距為2厘米
eole.ActiveSheet.PageSetup.RightMargin=2/0.035
22.設(shè)置頁(yè)面水平居中
eole.ActiveSheet.PageSetup.CenterHorizontally=.t.23.設(shè)置頁(yè)面垂直居中
eole.ActiveSheet.PageSetup.CenterVertically=.t.24.設(shè)置頁(yè)面紙張大小(1-窄行8511 39-寬行1411)
eole.ActiveSheet.PageSetup.PaperSize=1
25.打印單元格網(wǎng)線
eole.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷貝整個(gè)工作表
eole.ActiveSheet.UsedRange.Copy
27.拷貝指定區(qū)域
eole.ActiveSheet.Range(″A1:E2″).Copy
28.粘貼
eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial
29.在第2行之前插入一行
eole.ActiveSheet.Rows(2).Insert
30.在第2列之前插入一列
eole.ActiveSheet.Columns(2).Insert
31.設(shè)置字體
eole.ActiveSheet.Cells(2,1).Font.Name=″黑體″
32.設(shè)置字體大小
eole.ActiveSheet.Cells(1,1).Font.Size=25
33.設(shè)置字體為斜體
eole.ActiveSheet.Cells(1,1).Font.Italic=.t.34.設(shè)置整列字體為粗體
eole.ActiveSheet.Columns(1).Font.Bold=.t.35.清除單元格公式
eole.ActiveSheet.Cells(1,4).ClearContents
36.打印預(yù)覽工作表
eole.ActiveSheet.PrintPreview
37.打印輸出工作表
eole.ActiveSheet.PrintOut
38.工作表另為
eole.ActiveWorkbook.SaveAs(″c:temp22.xls″)
39.放棄存盤
eole.ActiveWorkbook.saved=.t.40.關(guān)閉工作簿
eole.Workbooks.close
41.退出Excel eole.quit
第四篇:全國(guó)VB二級(jí)操作試題及答案2016
一、基本操作題
(1)在名稱為Forml,標(biāo)題為“輸入”、最大化按鈕不可用的窗體上畫1個(gè)名稱為Framel的框架控件,其標(biāo)題為“選擇性別”;再向框架內(nèi)畫兩個(gè)名稱分別為Optionl和Option2的單選按鈕,其標(biāo)題分別為“男”和“女”,并將單選按鈕Option2設(shè)置為選中狀態(tài)。請(qǐng)?jiān)O(shè)置相應(yīng)屬性使得程序執(zhí)行時(shí),窗體界面如圖所示。
注意:存盤時(shí),將文件保存至考生文件夾下,窗體文件名為sjtl.frm,工程文件名為sjtl.vbp。
(2)在名稱為Forml的窗體上畫1個(gè)名稱為L(zhǎng)abell的標(biāo)簽,其標(biāo)題為“計(jì)算機(jī)等級(jí)考試”,且能根據(jù)標(biāo)題內(nèi)容自動(dòng)調(diào)整大小,有邊框(如圖所示);再在窗體上畫1個(gè)名稱為HScrolll的水平滾動(dòng)條,并將滾動(dòng)條所能表示的最小值設(shè)置為
10、最大值設(shè)置為20。
要求:編寫適當(dāng)?shù)氖录^(guò)程,使得程序運(yùn)行時(shí),當(dāng)單擊水平滾動(dòng)條兩端的箭頭時(shí),能將標(biāo)簽中的文字大小設(shè)置為滾動(dòng)框當(dāng)前位置值,程序運(yùn)行后的界面如圖所示。
注意:程序中不得使用變量,每個(gè)事件過(guò)程中只能寫一條語(yǔ)句(不得使用選擇語(yǔ)句或循環(huán)語(yǔ)句)。存盤時(shí)必須存放在考生文件夾下,工程文件名為sjt2.vbp,窗體文件名為sjt2.frm。
二、簡(jiǎn)單應(yīng)用題
(1)考生文件夾中有工程文件sjt3.vbv。窗體上顯示有一個(gè)列表框和一個(gè)文本框,且列表框中已有若干列表項(xiàng)。程序的功能是,程序運(yùn)行時(shí),當(dāng)用戶在列表框中單擊并選中某個(gè)列表項(xiàng)時(shí),該項(xiàng)的內(nèi)容將顯示到文本框中,用戶可以在文本框中對(duì)相關(guān)內(nèi)容進(jìn)行編輯,按回車鍵后,能夠用編輯好的內(nèi)容替換被選中的列表項(xiàng),并自動(dòng)清空文本框;當(dāng)雙擊某個(gè)列表項(xiàng)時(shí),則從列表框中刪除該列表項(xiàng);當(dāng)用戶直接在文本框中鍵入文本并按回車鍵后,則把該文本添加為列表框的一個(gè)新列表項(xiàng),添加完成后,將文本框清空。運(yùn)行窗體如圖所示。
要求:程序已經(jīng)給出,但不完整,請(qǐng)將其中的注釋符去掉,把“?”改為正確的內(nèi)容,以實(shí)現(xiàn)上述程序功能。
注意:考生不得修改窗體文件中已經(jīng)存在的控件和程序。最后程序按原文件名存盤。
(2)考生文件夾中有一個(gè)工程文件sjt4.vbp。窗體上有兩個(gè)文本框和一個(gè)標(biāo)題為“運(yùn)算”的命令按鈕。程序的功能是,當(dāng)程序運(yùn)行時(shí),單擊“運(yùn)算”按鈕,能夠產(chǎn)生10個(gè)1~100之間的隨機(jī)整數(shù),并顯示在上面一個(gè)文本框中,然后,程序從中找出一個(gè)最大值,并將最大值與第1個(gè)數(shù)互換位置,最后把結(jié)果顯示在下面一個(gè)文本框中。下圖為程序某次運(yùn)行的結(jié)果。程序已經(jīng)給出,但不完整,請(qǐng)將其中的注釋符去掉,把“?”改為正確的內(nèi)容,以實(shí)現(xiàn)上述程序功能。
注意:考生不得修改窗體文件中已經(jīng)存在的控件和程序,最后程序按原文件名存盤。
三、綜合應(yīng)用題
考生文件夾下有工程文件sjt5.vbp,窗體界面如圖所示。考生文件夾下的in5.dat文件中有某次歌睦大獎(jiǎng)賽10位選手的得分,文件中的每一行數(shù)據(jù)包含選手的編號(hào)及5位評(píng)委的打分。程序運(yùn)行時(shí),單擊“顯示數(shù)據(jù)”按鈕,則將in5.dat文件的內(nèi)容讀入二維數(shù)組a中,并將數(shù)組a各元素的值顯示在Textl文本框中;單擊“計(jì)算并排序”按鈕,則先計(jì)算每位選手的平均分作為最后得分,再按最后得分從高到低排序,最后按序在Listl列表框中顯示各選手的編號(hào)和最后得分(每組編號(hào)和最后得分用空格隔開(kāi)作為一行)。單擊“保存”按鈕,則保存結(jié)果。“顯示數(shù)據(jù)”和“保存”按鈕的Click事件過(guò)程已經(jīng)給出,請(qǐng)編寫“計(jì)算并排序”按鈕的Click事件過(guò)程實(shí)現(xiàn)上述功能。
注意:考生不得修改窗體文件中已經(jīng)存在的控件和程序,在結(jié)束程序運(yùn)行之前,必須單擊“計(jì)算并排序”按鈕后,再單擊“保存”按鈕保存結(jié)果,否則無(wú)成績(jī)。最后,程序按原文件名存盤。
參考答案及解析
一、基本操作題
(1)【解題思路】新建一個(gè)空白窗體,添加一個(gè)框架控件和兩個(gè)單選按鈕控件,設(shè)置窗體和控件的相關(guān)屬性值。
【操作步驟】
步驟1:新建一個(gè)“輸入”、最大化按鈕不可用的窗體,相關(guān)屬性設(shè)置如表4.1所示。
步驟2:向窗體中添加一個(gè)框架控件和兩個(gè)選項(xiàng)按鈕,并設(shè)置好相關(guān)屬性,如表4.2所示。
設(shè)置完成后效果如圖4.1所示。
步驟3:調(diào)試并運(yùn)行程序,關(guān)閉程序后按題目要求存盤。
(2)【解題思路】新建一個(gè)空白窗體,添加一個(gè)標(biāo)簽控件和一個(gè)水平滾動(dòng)條控件,設(shè)置好該控件的相關(guān)屬性,最后通過(guò)水平滾動(dòng)條的change事件,將標(biāo)簽控件的fontSize屬性設(shè)置為滾動(dòng)條的value值。
步驟3:添加一個(gè)水平滾動(dòng)條,設(shè)置控件的相關(guān)屬性,如
表4.4所示。
設(shè)置完成后,窗體運(yùn)行效果如圖4.2所示。
步驟5:調(diào)試并運(yùn)行程序,關(guān)閉程序后按題目要求存盤。
二、簡(jiǎn)單應(yīng)用題
(1)【解題思路】本題主要考查對(duì)列表框控件的使用,包括向列表框中增加項(xiàng)目,從列表框中刪除項(xiàng)目。修改列表框中選中項(xiàng)目的值。
第一個(gè)空使用列表框的Text屬性,該屬性的值為最后一次選中的表項(xiàng)的文本。
第二個(gè)空使用列表框的Lisflndex屬性,該屬性的值是已選中的表項(xiàng)的位置。
第三個(gè)空判斷Text1文本框中的內(nèi)容是否為空。
第四個(gè)空表示當(dāng)列表框中無(wú)選中項(xiàng)目時(shí),將Text1中的內(nèi)容添加到列表框的最后。
第五個(gè)空表示將Text1文本框中的文本替換為列表框中選中的項(xiàng)目,使用列表框的List和ListIndex屬性。
步驟3:調(diào)試并運(yùn)行程序,關(guān)閉程序后按題目要求存盤
(2)【解題思路】本題主要考核對(duì)數(shù)組中元素的基本操作,利用循環(huán)語(yǔ)句找出數(shù)組中的最大值,并將保存最大值和其所對(duì)應(yīng)的下標(biāo),然后將最大值與數(shù)組中的第一個(gè)元素進(jìn)行互換操作。
三、綜合應(yīng)用題
【解題思路】本題主要考核列表框控件的基本操作,在事件過(guò)程中利用循環(huán)結(jié)構(gòu)對(duì)二維數(shù)組中的元素求平均值,并將結(jié)果添加到列表框中,然后利用二重循環(huán)結(jié)構(gòu)對(duì)列表框中的元素進(jìn)行降序排列。
步驟3:調(diào)試并運(yùn)行程序,關(guān)閉程序后按題目要求存盤。
第五篇:Vb對(duì)excel操作的實(shí)例
Vb對(duì)excel操作的實(shí)例
最近,由于工作關(guān)系,我用vb6.0做了一個(gè)計(jì)算成績(jī)的軟件,由于我不會(huì)數(shù)據(jù)庫(kù)技術(shù),同行對(duì)excel應(yīng)用又比較普遍,所以就用vb6.0操作excel完成了成績(jī)統(tǒng)計(jì)的任務(wù)。
先說(shuō)說(shuō)窗體,很簡(jiǎn)單,只運(yùn)用了菜單,由此來(lái)調(diào)用程序代碼。截圖如下:
窗體命名為excel操作,共五個(gè)一級(jí)菜單。
創(chuàng)建表冊(cè)用來(lái)制作所用表格。
計(jì)算成績(jī)用來(lái)算成績(jī)。
模擬運(yùn)算用來(lái)測(cè)試軟件,設(shè)置了兩個(gè)子菜單,一個(gè)填隨機(jī)生成的數(shù)據(jù)。有了數(shù)據(jù)就可以計(jì)算成績(jī)了,看看效果如何。
測(cè)試完了就可以清空數(shù)據(jù)了,清空成績(jī)冊(cè)中的基礎(chǔ)數(shù)據(jù)以后再計(jì)算一次成績(jī)就基本可以使表冊(cè)恢復(fù)原樣了。其實(shí),我這是多此一舉,回頭一想,只需要重新創(chuàng)建所用表冊(cè)就行了。
還畫蛇添足了倆菜單:計(jì)算器和退出。代碼也貼出來(lái)共享一下。創(chuàng)建表冊(cè):一年級(jí): Private Sub ynjkb_Click()Call 建空表(10)Call 工作表命名(1)Call 成績(jī)冊(cè)(1)Unload excel操作 End Sub 創(chuàng)建表冊(cè):二年級(jí): Private Sub enjkb_Click()Call 建空表(10)Call 工作表命名(2)Call 成績(jī)冊(cè)(2)Unload excel操作 End Sub 三至六年級(jí)略了吧。創(chuàng)建表冊(cè):學(xué)校總評(píng): Private Sub xxzp_Click()nj(1)= “一年級(jí)”: nj(2)= “二年級(jí)”: nj(3)= “三年級(jí)”: nj(4)= “四年級(jí)”: nj(5)= “五年級(jí)”: nj(6)= “六年級(jí)” Call 建空表(2)'建立積分表
Sheets(1).Name = “學(xué)校積分” Sheets(2).Name = “積分” Sheets(“學(xué)校積分”).Select Range(“a1:i1”).Merge [a1] = “學(xué)校積分統(tǒng)計(jì)表”: [a2] = “學(xué)校”: [a3] = “南村小學(xué)”: [a4] = “東風(fēng)小學(xué)”: [a5] = “興中小學(xué)”: [a6] = “堯場(chǎng)小學(xué)” nj(1)= “一年級(jí)”: nj(2)= “二年級(jí)”: nj(3)= “三年級(jí)”: nj(4)= “四年級(jí)”: nj(5)= “五年級(jí)”: nj(6)= “六年級(jí)” For i = 1 To 6 Cells(2, i + 1)= nj(i)+ “積分” Next Cells(2, 8)= “均積分”: Cells(2, 9)= “名次” Range([a1], [i6]).Select Selection.HorizontalAlignment = xlCenter Call 表格加線(Range([a2], [i6]))Call 橫排(6, 9)ActiveSheet.PageSetup.Orientation = xlLandscape Unload excel操作 End Sub 創(chuàng)建表冊(cè):上報(bào):
Private Sub shangbao_Click()Call 建空表(2)Sheets(1).Name = “中心校” Sheets(“中心校”).Select Call 上報(bào)表(“中心校”)Sheets(2).Name = “普小” Sheets(“普小”).Select Call 上報(bào)表(“普小”)Unload excel操作 End Sub 計(jì)算成績(jī):一年級(jí): Private Sub yinianji_Click()Call 打開(kāi)工作表 Call 算成績(jī)(1)kmb(1)= “語(yǔ)文”: kmb(2)= “數(shù)學(xué)”: kmb(3)= “英語(yǔ)” Sheets(kmb(1)).Select For i = 1 To 8
'記錄一年級(jí)語(yǔ)文數(shù)據(jù) With bj(i).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(1).njxh = 1 End With Next Sheets(kmb(2)).Select For i = 1 To 8
'記錄一年級(jí)數(shù)學(xué)數(shù)據(jù) With bj(i + 8).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(2).njxh = 1 End With Next Dim hgrs(8)
'記錄各學(xué)校合格人數(shù) For i = 1 To 8 Sheets(xx(i)).Select szl = Application.WorksheetFunction.Match(“總分”, Range([a2], [f2]))'總分所在列即合格人數(shù)所在列
szh = Application.WorksheetFunction.Match(“合格人數(shù)”, Range(Cells(2, szl), Cells(80, szl)))'“合格人數(shù)”所在行
hgrs(i)= Cells(szh + 2, szl)Next '向?qū)W校總評(píng)表過(guò)錄一年級(jí)數(shù)據(jù)
nj(1)= “一年級(jí)”: nj(2)= “二年級(jí)”: nj(3)= “三年級(jí)”: nj(4)= “四年級(jí)”: nj(5)= “五年級(jí)”: nj(6)= “六年級(jí)” Workbooks.Open FileName:=ActiveWorkbook.Path & “學(xué)校總評(píng).xls” For i = 1 To 16 With Sheets(“積分”)Sheets(“積分”).Select [a1] = “年級(jí)”: [a2] = “學(xué)科”: [a3] = “學(xué)校”: [a4] = “人數(shù)”: [a5] = “總分”: [a6] = “及格人數(shù)”: [a7] = “優(yōu)秀人數(shù)”: [a8] = “積分”.Cells(1, i + 1)= nj(bj(i).njxh).Cells(2, i + 1)= bj(i).bjkm.Cells(3, i + 1)= bj(i).xxmc.Cells(4, i + 1)= bj(i).xkrs.Cells(5, i + 1)= bj(i).xkzf.Cells(6, i + 1)= bj(i).xkjgr.Cells(7, i + 1)= bj(i).xkyxr.Cells(8, i + 1)= bj(i).xkjf End With Next Workbooks.Open FileName:=ActiveWorkbook.Path & “上報(bào).xls” With Sheets(“中心校”)'過(guò)錄中心校成績(jī).Cells(bj(1).njxh * 2 + 2, 3)= bj(1).xkrs + bj(2).xkrs + bj(6).xkrs '語(yǔ)文
.Cells(bj(1).njxh * 2 + 2, 4)= bj(1).xkzf + bj(2).xkzf + bj(6).xkzf.Cells(bj(1).njxh * 2 + 2, 5)= Round(.Cells(bj(1).njxh * 2 + 2, 4)/.Cells(bj(1).njxh * 2 + 2, 3), 2).Cells(bj(1).njxh * 2 + 2, 6)= bj(1).xkjgr + bj(2).xkjgr + bj(6).xkjgr.Cells(bj(1).njxh * 2 + 2, 7)= bj(1).xkyxr + bj(2).xkyxr + bj(6).xkyxr.Cells(bj(1).njxh * 2 + 2, 8)= hgrs(1)+ hgrs(2)+ hgrs(6).Cells(bj(1).njxh * 2 + 3, 3)= bj(9).xkrs + bj(10).xkrs + bj(14).xkrs '數(shù)學(xué)
.Cells(bj(1).njxh * 2 + 3, 4)= bj(9).xkzf + bj(10).xkzf + bj(14).xkzf.Cells(bj(1).njxh * 2 + 3, 5)= Round(.Cells(bj(1).njxh * 2 + 3, 4)/.Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6)= bj(9).xkjgr + bj(10).xkjgr + bj(14).xkjgr.Cells(bj(1).njxh * 2 + 3, 7)= bj(9).xkyxr + bj(10).xkyxr + bj(14).xkyxr.Cells(bj(1).njxh * 2 + 3, 8)= hgrs(1)+ hgrs(2)+ hgrs(6)End With With Sheets(“普小”)'過(guò)錄普小成績(jī)
.Cells(bj(1).njxh * 2 + 2, 3)= bj(3).xkrs + bj(4).xkrs + bj(5).xkrs + bj(7).xkrs + bj(8).xkrs '語(yǔ)文
.Cells(bj(1).njxh * 2 + 2, 4)= bj(3).xkzf + bj(4).xkzf + bj(5).xkzf + bj(7).xkzf + bj(8).xkzf.Cells(bj(1).njxh * 2 + 2, 5)= Round(.Cells(bj(1).njxh * 2 + 2, 4)/.Cells(bj(1).njxh * 2 + 2, 3), 2).Cells(bj(1).njxh * 2 + 2, 6)= bj(3).xkjgr + bj(4).xkjgr + bj(5).xkjgr + bj(7).xkjgr + bj(8).xkjgr.Cells(bj(1).njxh * 2 + 2, 7)= bj(3).xkyxr + bj(4).xkyxr + bj(5).xkyxr + bj(7).xkyxr + bj(8).xkyxr.Cells(bj(1).njxh * 2 + 2, 8)= hgrs(3)+ hgrs(4)+ hgrs(5)+ hgrs(7)+ hgrs(8).Cells(bj(1).njxh * 2 + 3, 3)= bj(11).xkrs + bj(12).xkrs + bj(13).xkrs + bj(15).xkrs + bj(16).xkrs '數(shù)學(xué)
.Cells(bj(1).njxh * 2 + 3, 4)= bj(11).xkzf + bj(12).xkzf + bj(13).xkzf + bj(15).xkzf + bj(16).xkzf.Cells(bj(1).njxh * 2 + 3, 5)= Round(.Cells(bj(1).njxh * 2 + 3, 4)/.Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6)= bj(11).xkjgr + bj(12).xkjgr + bj(13).xkjgr + bj(15).xkjgr + bj(15).xkjgr.Cells(bj(1).njxh * 2 + 3, 7)= bj(11).xkyxr + bj(12).xkyxr + bj(13).xkyxr + bj(15).xkyxr + bj(16).xkyxr.Cells(bj(1).njxh * 2 + 3, 8)= hgrs(3)+ hgrs(4)+ hgrs(5)+ hgrs(7)+ hgrs(8)End With Unload excel操作 End Sub 計(jì)算成績(jī):二年級(jí)略。計(jì)算成績(jī):三年級(jí): Private Sub sannianji_Click()Call 打開(kāi)工作表 Call 算成績(jī)(3)kmb(1)= “語(yǔ)文”: kmb(2)= “數(shù)學(xué)”: kmb(3)= “英語(yǔ)” Sheets(kmb(1)).Select For i = 1 To 5
'記錄三年級(jí)語(yǔ)文數(shù)據(jù) With bj(i).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(1).njxh = 3 End With Next Sheets(kmb(2)).Select For i = 1 To 5
'記錄三年級(jí)數(shù)學(xué)數(shù)據(jù) With bj(i + 5).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(2).njxh = 3 End With Next Sheets(kmb(3)).Select For i = 1 To 5
'記錄三年級(jí)英語(yǔ)數(shù)據(jù) With bj(i + 10).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(3).njxh = 3 End With Next xx(1)= “南村1”: xx(2)= “南村2”: xx(3)= “興中”: xx(4)= “東風(fēng)”: xx(5)= “堯場(chǎng)” Dim hgrs(5)
'記錄各學(xué)校合格人數(shù) For i = 1 To 5 Sheets(xx(i)).Select szl = Application.WorksheetFunction.Match(“總分”, Range([a2], [f2]))'總分所在列即合格人數(shù)所在列
szh = Application.WorksheetFunction.Match(“合格人數(shù)”, Range(Cells(2, szl), Cells(80, szl)))'“合格人數(shù)”所在行
hgrs(i)= Cells(szh + 2, szl)Next '向?qū)W校總評(píng)表過(guò)錄積分
nj(1)= “一年級(jí)”: nj(2)= “二年級(jí)”: nj(3)= “三年級(jí)”: nj(4)= “四年級(jí)”: nj(5)= “五年級(jí)”: nj(6)= “六年級(jí)” Workbooks.Open FileName:=ActiveWorkbook.Path & “學(xué)校總評(píng).xls” For i = 1 To 15 With Sheets(“積分”)[a21] = “年級(jí)”: [a22] = “學(xué)科”: [a23] = “學(xué)校”: [a24] = “人數(shù)”: [a25] = “總分”: [a26] = “及格人數(shù)”: [a27] = “優(yōu)秀人數(shù)”: [a28] = “積分”.Cells(21, i + 1)= nj(bj(i).njxh).Cells(22, i + 1)= bj(i).bjkm.Cells(23, i + 1)= bj(i).xxmc.Cells(24, i + 1)= bj(i).xkrs.Cells(25, i + 1)= bj(i).xkzf.Cells(26, i + 1)= bj(i).xkjgr.Cells(27, i + 1)= bj(i).xkyxr.Cells(28, i + 1)= bj(i).xkjf End With Next Workbooks.Open FileName:=ActiveWorkbook.Path & “上報(bào).xls” With Sheets(“中心校”)'過(guò)錄中心校成績(jī)
.Cells(bj(1).njxh * 31, 4)= bj(1).xkzf + bj(2).xkzf.Cells(bj(1).njxh * 31, 4)/.Cells(bj(1).njxh * 31, 6)= bj(1).xkjgr + bj(2).xkjgr.Cells(bj(1).njxh * 31, 8)= hgrs(1)+ hgrs(2).Cells(bj(1).njxh * 3, 3)= bj(6).xkrs + bj(7).xkrs
'數(shù)學(xué).Cells(bj(1).njxh * 3, 4)= bj(6).xkzf + bj(7).xkzf.Cells(bj(1).njxh * 3, 5)= Round(.Cells(bj(1).njxh * 3, 4)/.Cells(bj(1).njxh * 3, 3), 2).Cells(bj(1).njxh * 3, 6)= bj(6).xkjgr + bj(7).xkjgr.Cells(bj(1).njxh * 3, 7)= bj(6).xkyxr + bj(7).xkyxr.Cells(bj(1).njxh * 3, 8)= hgrs(1)+ hgrs(2).Cells(bj(1).njxh * 3 + 1, 3)= bj(11).xkrs + bj(12).xkrs
'英語(yǔ)
.Cells(bj(1).njxh * 3 + 1, 4)= bj(11).xkzf + bj(12).xkzf.Cells(bj(1).njxh * 3 + 1, 5)= Round(.Cells(bj(1).njxh * 3 + 1, 4)/.Cells(bj(1).njxh * 3 + 1, 3), 2).Cells(bj(1).njxh * 3 + 1, 6)= bj(11).xkjgr + bj(12).xkjgr.Cells(bj(1).njxh * 3 + 1, 7)= bj(11).xkyxr + bj(12).xkyxr.Cells(bj(1).njxh * 3 + 1, 8)= hgrs(1)+ hgrs(2)End With With Sheets(“普小”)'過(guò)錄普小成績(jī)
.Cells(bj(1).njxh * 31, 4)= bj(3).xkzf + bj(4).xkzf + bj(5).xkzf.Cells(bj(1).njxh * 31, 4)/.Cells(bj(1).njxh * 31, 6)= bj(3).xkjgr + bj(4).xkjgr + bj(5).xkjgr.Cells(bj(1).njxh * 31, 8)= hgrs(3)+ hgrs(4)+ hgrs(5).Cells(bj(1).njxh * 3, 3)= bj(8).xkrs + bj(9).xkrs + bj(10).xkrs
'數(shù)學(xué)
.Cells(bj(1).njxh * 3, 4)= bj(8).xkzf + bj(9).xkzf + bj(10).xkzf.Cells(bj(1).njxh * 3, 5)= Round(.Cells(bj(1).njxh * 3, 4)/.Cells(bj(1).njxh * 3, 3), 2).Cells(bj(1).njxh * 3, 6)= bj(8).xkjgr + bj(9).xkjgr + bj(10).xkjgr.Cells(bj(1).njxh * 3, 7)= bj(8).xkyxr + bj(9).xkyxr + bj(10).xkyxr.Cells(bj(1).njxh * 3, 8)= hgrs(3)+ hgrs(4)+ hgrs(5).Cells(bj(1).njxh * 3 + 1, 3)= bj(13).xkrs + bj(14).xkrs + bj(15).xkrs '英語(yǔ)
.Cells(bj(1).njxh * 3 + 1, 4)= bj(13).xkzf + bj(14).xkzf + bj(15).xkzf.Cells(bj(1).njxh * 3 + 1, 5)= Round(.Cells(bj(1).njxh * 3 + 1, 4)/.Cells(bj(1).njxh * 3 + 1, 3), 2).Cells(bj(1).njxh * 3 + 1, 6)= bj(13).xkjgr + bj(14).xkjgr + bj(15).xkjgr.Cells(bj(1).njxh * 3 + 1, 7)= bj(13).xkyxr + bj(14).xkyxr + bj(15).xkyxr.Cells(bj(1).njxh * 3 + 1, 8)= hgrs(3)+ hgrs(4)+ hgrs(5)End With Unload excel操作 End Sub 計(jì)算成績(jī):三至六年級(jí)略。計(jì)算成績(jī):學(xué)校總評(píng): Private Sub 學(xué)校總評(píng)_Click()Call 打開(kāi)工作表 For i = 1 To 6 Call 算學(xué)校積分(i)Next Sheets(“學(xué)校積分”).Select For i = 3 To 6 Range(“h”
&
i)
= Round(Application.WorksheetFunction.Sum(Range(Range(“b” & i), Range(“g” & i)))/ 6, 2)Next For i = 3 To 6 Range(“i”
&
i)
&
= i), Application.WorksheetFunction.Rank(Range(“h” Range([h3], [h6]))Next Unload excel操作 End Sub 模擬運(yùn)算:隨機(jī)填成績(jī):一年級(jí): Private Sub synj_Click()Call 打開(kāi)工作表 Call 填數(shù)據(jù)(1)Unload excel操作 End Sub 模擬運(yùn)算:隨機(jī)填成績(jī):二年級(jí)至六年級(jí)略。模擬運(yùn)算:清空成績(jī)冊(cè):一年級(jí): Private Sub qynj_Click()Call 打開(kāi)工作表 Call 清數(shù)據(jù)(1)Unload excel操作 End Sub 模擬運(yùn)算:清空成績(jī)冊(cè):二年級(jí)至六年級(jí)略。計(jì)算器:
Private Sub jsq_Click()Shell “calc.exe” End Sub 退出:
Private Sub tc_Click()Unload excel操作 End Sub 框架已經(jīng)完成,可以看出,卸載窗體的動(dòng)作很頻繁。這是我調(diào)試的結(jié)果,這樣才能保證每次的動(dòng)作都能順利完成。我想這就是單窗體的特點(diǎn)吧。
被調(diào)用的程序模塊也挺多的,系統(tǒng)包也調(diào)用了,最頻繁的就是打開(kāi)文件對(duì)話框的調(diào)用。
Private Sub 打開(kāi)工作表()Application.FindFile Set xlApp = CreateObject(“Excel.Application”)xlApp.Visible = True '設(shè)置EXCEL對(duì)象可見(jiàn)(或不可見(jiàn))End Sub 哦,還得說(shuō)明一下,對(duì)excel的操作前提: Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet 本軟件中,我第一次用了自定義類的數(shù)據(jù)類型。Private Type banji
xxmc As String
bjkm As String
njxh As Integer
xkrs As Integer
dkjs As String
xkzf As Integer
xkjgr As Integer
xkyxr As Integer
xkjf As Long End Type 并設(shè)了一數(shù)組Dim bj(16)As banji來(lái)從年級(jí)成績(jī)冊(cè)向?qū)W校總評(píng)表過(guò)錄數(shù)據(jù)。設(shè)了八個(gè)學(xué)校名稱Dim xx(8),設(shè)了3個(gè)科目表Dim kmb(1 To 3)As String,六個(gè)年級(jí)Dim nj(1 To 6)As String,班級(jí)人數(shù)為六個(gè)年級(jí)八個(gè)學(xué)校的二維數(shù)組Dim gbrs(6, 8)。
至于其它程序模塊都是我以前vba用過(guò)的,在我的空間里有,在此不再贅述。