欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      EXCEL VBA工作表操作全能方法小結(jié)

      時間:2019-05-12 13:13:51下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《EXCEL VBA工作表操作全能方法小結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《EXCEL VBA工作表操作全能方法小結(jié)》。

      第一篇:EXCEL VBA工作表操作全能方法小結(jié)

      EXCEL VBA工作表操作全能方法小結(jié)

      [示例04-01]增加工作表(Add方法)Sub AddWorksheet()MsgBox “在當(dāng)前工作簿中添加一個工作表” Worksheets.Add MsgBox “在當(dāng)前工作簿中的工作表sheet2之前添加一個工作表” Worksheets.Add before:=Worksheets(“sheet2”)MsgBox “在當(dāng)前工作簿中的工作表sheet2之后添加一個工作表” Worksheets.Add after:=Worksheets(“sheet2”)MsgBox “在當(dāng)前工作簿中添加3個工作表” Worksheets.Add Count:=3 End Sub 示例說明:Add方法帶有4個可選的參數(shù),其中參數(shù)Before和參數(shù)After指定所增加的工作表的位置,但兩個參數(shù)只能選一;參數(shù)Count用來指定增加的工作表數(shù)目。

      ------------------[示例04-02]復(fù)制工作表(Copy方法)Sub CopyWorksheet()MsgBox “在當(dāng)前工作簿中復(fù)制工作表sheet1并將所復(fù)制的工作表放在工作表sheet2之前” Worksheets(“sheet1”).Copy Before:=Worksheets(“sheet2”)MsgBox “在當(dāng)前工作簿中復(fù)制工作表sheet2并將所復(fù)制的工作表放在工作表sheet3之后” Worksheets(“sheet2”).Copy After:=Worksheets(“sheet3”)End Sub 示例說明:Copy方法帶有2個可選的參數(shù),即參數(shù)Before和參數(shù)After,在使用時兩個參數(shù)只參選一。

      ------------------[示例04-03]移動工作表(Move方法)Sub MoveWorksheet()MsgBox “在當(dāng)前工作簿中將工作表sheet3移至工作表sheet2之前” Worksheets(“sheet3”).Move Before:=Worksheets(“sheet2”)MsgBox “在當(dāng)前工作簿中將工作表sheet1移至最后” Worksheets(“sheet1”).Move After:=Worksheets(Worksheets.Count)End Sub 示例說明:Move方法與Copy方法的參數(shù)相同,作用也一樣。

      ------------------[示例04-04]隱藏和顯示工作表(Visible屬性)[示例04-04-01] Sub testHide()MsgBox “第一次隱藏工作表sheet1” Worksheets(“sheet1”).Visible = False MsgBox “顯示工作表sheet1” Worksheets(“sheet1”).Visible = True MsgBox “第二次隱藏工作表sheet1” Worksheets(“sheet1”).Visible = xlSheetHidden MsgBox “顯示工作表sheet1” Worksheets(“sheet1”).Visible = True MsgBox “第三次隱藏工作表sheet1” Worksheets(“sheet1”).Visible = xlSheetHidden MsgBox “顯示工作表sheet1” Worksheets(“sheet1”).Visible = xlSheetVisible MsgBox “第四隱藏工作表sheet1” Worksheets(“sheet1”).Visible = xlSheetVeryHidden MsgBox “顯示工作表sheet1” Worksheets(“sheet1”).Visible = True MsgBox “第五隱藏工作表sheet1” Worksheets(“sheet1”).Visible = xlSheetVeryHidden MsgBox “顯示工作表sheet1” Worksheets(“sheet1”).Visible = xlSheetVisible End Sub 示例說明:本示例演示了隱藏和顯示工作表的各種情形。其中,使用xlSheetVeryHidden常量來隱藏工作表,將不能通過選擇工作表菜單欄中的“格式”——“工作表”——“取消隱藏”命令來取消隱藏。

      ------------------[示例04-04-02] Sub ShowAllSheets()MsgBox “使當(dāng)前工作簿中的所有工作表都顯示(即將隱藏的工作表也顯示)” Dim ws As Worksheet For Each ws In Sheets ws.Visible = True Next ws End Sub

      ------------------[示例04-05]獲取工作表數(shù)(Count屬性)[示例04-05-01] Sub WorksheetNum()Dim i As Long i = Worksheets.Count MsgBox “當(dāng)前工作簿的工作表數(shù)為:” & Chr(10)& i End Sub

      ------------------[示例04-05-02] Sub WorksheetNum()Dim i As Long i = Sheets.Count MsgBox “當(dāng)前工作簿的工作表數(shù)為:” & Chr(10)& i End Sub 示例說明:在一個包含圖表工作表的工作簿中運行上述兩段代碼,將會得出不同的結(jié)果,原因是對于Sheets集合來講,工作表包含圖表工作表。應(yīng)注意Worksheets集合與Sheets集合的區(qū)別,下同。

      ------------------[示例04-06]獲取或設(shè)置工作表名稱(Name屬性)[示例04-06-01] Sub NameWorksheet()Dim sName As String, sChangeName As String sName = Worksheets(2).Name MsgBox “當(dāng)前工作簿中第2個工作表的名字為:” & sName sChangeName = “我的工作表” MsgBox “將當(dāng)前工作簿中的第3個工作表名改為:” & sChangeName Worksheets(3).Name = sChangeName End Sub 示例說明:使用Name屬性可以獲取指定工作表的名稱,也可以設(shè)置工作表的名稱。

      ------------------[示例04-06-02]重命名工作表 Sub ReNameSheet()Dim xStr As String Retry: Err.Clear xStr = InputBox(“請輸入工作表的新名稱:” _ , “重命名工作表”, ActiveSheet.Name)If xStr = “" Then Exit Sub On Error Resume Next ActiveSheet.Name = xStr If Err.Number <> 0 Then MsgBox Err.Number & ” “ & Err.Description Err.Clear GoTo Retry End If On Error GoTo 0 '.........End Sub

      ------------------[NextPage][示例04-07]激活/選擇工作表(Activate方法和Select方法)[示例04-07-01] Sub SelectWorksheet()MsgBox ”激活當(dāng)前工作簿中的工作表sheet2“ Worksheets(”sheet2“).Activate MsgBox ”激活當(dāng)前工作簿中的工作表sheet3“ Worksheets(”sheet3“).Select MsgBox ”同時選擇工作簿中的工作表sheet2和sheet3“ Worksheets(Array(”sheet2“, ”sheet3“)).Select End Sub 示例說明:Activate方法只能激活一個工作表,而Select方法可以同時選擇多個工作表。

      ------------------[示例04-07-02] Sub SelectManySheet()MsgBox ”選取第一個和第三個工作表.“ Worksheets(1).Select Worksheets(3).Select False End Sub

      ------------------[示例04-08]獲取當(dāng)前工作表的索引號(Index屬性)Sub GetSheetIndex()Dim i As Long i = ActiveSheet.Index MsgBox ”您正使用的工作表索引號為“ & i End Sub

      ------------------[示例04-09]選取前一個工作表(Previous屬性)Sub PreviousSheet()If ActiveSheet.Index <> 1 Then MsgBox ”選取當(dāng)前工作簿中當(dāng)前工作表的前一個工作表“ ActiveSheet.Previous.Activate Else MsgBox ”已到第一個工作表“ End If End Sub 示例說明:如果當(dāng)前工作表是第一個工作表,則使用Previous屬性會出錯。

      ------------------[示例04-10]選取下一個工作表(Next屬性)Sub NextSheet()If ActiveSheet.Index <> Worksheets.Count Then MsgBox ”選取當(dāng)前工作簿中當(dāng)前工作表的下一個工作表“ ActiveSheet.Next.Activate Else MsgBox “已到最后一個工作表” End If End Sub 示例說明:如果當(dāng)前工作表是最后一個工作表,則使用Next屬性會出錯。

      ------------------[示例04-11]工作表行和列的操作 [示例04-11-01]隱藏行 Sub HideRow()Dim iRow As Long MsgBox ”隱藏當(dāng)前單元格所在的行“ iRow = ActiveCell.Row ActiveSheet.Rows(iRow).Hidden = True MsgBox ”取消隱藏“ ActiveSheet.Rows(iRow).Hidden = False End Sub

      ------------------[示例04-11-02]隱藏列 Sub HideColumn()Dim iColumn As Long MsgBox ”隱藏當(dāng)前單元格所在列“ iColumn = ActiveCell.Column ActiveSheet.Columns(iColumn).Hidden = True MsgBox ”取消隱藏“ ActiveSheet.Columns(iColumn).Hidden = False End Sub

      ------------------[示例04-11-03]插入行 Sub InsertRow()Dim rRow As Long MsgBox ”在當(dāng)前單元格上方插入一行“ rRow = Selection.Row ActiveSheet.Rows(rRow).Insert End Sub

      ------------------[示例04-11-04]插入列 Sub InsertColumn()Dim cColumn As Long MsgBox ”在當(dāng)前單元格所在行的左邊插入一行“ cColumn = Selection.Column ActiveSheet.Columns(cColumn).Insert End Sub

      ------------------[示例04-11-05]插入多行 Sub InsertManyRow()MsgBox ”在當(dāng)前單元格所在行上方插入三行“ Dim rRow As Long, i As Long For i = 1 To 3 rRow = Selection.Row ActiveSheet.Rows(rRow).Insert Next i End Sub

      ------------------[示例04-11-06]設(shè)置行高 Sub SetRowHeight()MsgBox ”將當(dāng)前單元格所在的行高設(shè)置為25“ Dim rRow As Long, iRow As Long rRow = ActiveCell.Row iRow = ActiveSheet.Rows(rRow).RowHeight ActiveSheet.Rows(rRow).RowHeight = 25 MsgBox ”恢復(fù)到原來的行高“ ActiveSheet.Rows(rRow).RowHeight = iRow End Sub

      ------------------[示例04-11-07]設(shè)置列寬 Sub SetColumnWidth()MsgBox ”將當(dāng)前單元格所在列的列寬設(shè)置為20“ Dim cColumn As Long, iColumn As Long cColumn = ActiveCell.Column iColumn = ActiveSheet.Columns(cColumn).ColumnWidth ActiveSheet.Columns(cColumn).ColumnWidth = 20 MsgBox ”恢復(fù)至原來的列寬“ ActiveSheet.Columns(cColumn).ColumnWidth = iColumn End Sub

      ------------------[示例04-11-08]恢復(fù)行高列寬至標(biāo)準(zhǔn)值 Sub ReSetRowHeightAndColumnWidth()MsgBox ”將當(dāng)前單元格所在的行高和列寬恢復(fù)為標(biāo)準(zhǔn)值“ Selection.UseStandardHeight = True Selection.UseStandardWidth = True End Sub

      ------------------[示例04-12]工作表標(biāo)簽

      [示例04-12-01] 設(shè)置工作表標(biāo)簽的顏色 Sub SetSheetTabColor()MsgBox ”設(shè)置當(dāng)前工作表標(biāo)簽的顏色“ ActiveSheet.Tab.ColorIndex = 7 End Sub

      ------------------[示例04-12-01]恢復(fù)工作表標(biāo)簽顏色 Sub SetSheetTabColorDefault()MsgBox ”將當(dāng)前工作表標(biāo)簽顏色設(shè)置為默認(rèn)值“ ActiveSheet.Tab.ColorIndex =-4142 End Sub

      ------------------[示例04-12-03]交替隱藏或顯示工作表標(biāo)簽 Sub HideOrShowSheetTab()MsgBox ”隱藏/顯示工作表標(biāo)簽“ ActiveWindow.DisplayWorkbookTabs = Not ActiveWindow.DisplayWorkbookTabs End Sub------------------[NextPage][示例04-13]確定打印的頁數(shù)(HPageBreaks屬性與VPageBreaks屬性)Sub PageCount()Dim i As Long i =(ActiveSheet.HPageBreaks.Count + 1)*(ActiveSheet.VPageBreaks.Count + 1)MsgBox ”當(dāng)前工作表共“ & i & ”頁.“ End Sub

      ------------------[示例04-14]保護(hù)/撤銷保護(hù)工作表 [示例04-14-01] Sub ProtectSheet()MsgBox ”保護(hù)當(dāng)前工作表并設(shè)定密碼“ ActiveSheet.Protect Password:=”fanjy“ End Sub 示例說明:運行代碼后,當(dāng)前工作表中將不允許編輯,除非撤銷工作表保護(hù)。

      ------------------[示例04-14-02] Sub UnprotectSheet()MsgBox ”撤銷當(dāng)前工作表保護(hù)“ ActiveSheet.Unprotect End Sub 示例說明:運行代碼后,如果原保護(hù)的工作表設(shè)置有密碼,則要求輸入密碼。

      ------------------[示例04-14-03]保護(hù)當(dāng)前工作簿中的所有工作表 Sub ProtectAllWorkSheets()On Error Resume Next Dim ws As Worksheet Dim myPassword As String myPassword = InputBox(”請輸入您的密碼“ & vbCrLf & _ ”(不輸入表明無密碼)“ & vbCrLf & vbCrLf & _ ”確保您沒有忘記密碼!“, ”輸入密碼“)For Each ws In ThisWorkbook.Worksheets ws.Protect(myPassword)Next ws End Sub

      ------------------[示例04-14-04]撤銷對當(dāng)前工作簿中所有工作表的保護(hù) Sub UnprotectAllWorkSheets()On Error Resume Next Dim ws As Worksheet Dim myPassword As String myPassword = InputBox(”請輸入您的密碼“ & vbCrLf & _ ”(不輸入表示無密碼)“, ”輸入密碼“)For Each ws In ThisWorkbook.Worksheets ws.Unprotect(myPassword)Next ws End Sub

      ------------------[示例04-14-05]僅能編輯未鎖定的單元格 Sub OnlyEditUnlockedCells()Sheets(”Sheet1“).EnableSelection = xlUnlockedCells ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub 示例說明:運行本代碼后,在當(dāng)前工作表中將只能對未鎖定的單元格進(jìn)行編輯,而其它單元格將不能編輯。未鎖定的單元格是指在選擇菜單“格式——單元格”命令后所彈出的對話框中的“保護(hù)”選項卡中,未選中“鎖定”復(fù)選框的單元格或單元格區(qū)域。

      ------------------[示例04-15]刪除工作表(Delete方法)Sub DeleteWorksheet()MsgBox ”刪除當(dāng)前工作簿中的工作表sheet2“ Application.DisplayAlerts = False Worksheets(”sheet2").Delete Application.DisplayAlerts = True End Sub

      第二篇:EXCEL VBA工作表操作全能方法小結(jié)

      EXCELVBA工作表操作全能方法小結(jié)

      [示例04-01]增加工作表(Add方法)SubAddWorksheet()MsgBox“在當(dāng)前工作簿中添加一個工作表” Worksheets.Add MsgBox“在當(dāng)前工作簿中的工作表sheet2之前添加一個工作表” Worksheets.Addbefore:=Worksheets(“sheet2”)MsgBox“在當(dāng)前工作簿中的工作表sheet2之后添加一個工作表” Worksheets.Addafter:=Worksheets(“sheet2”)MsgBox“在當(dāng)前工作簿中添加3個工作表” Worksheets.AddCount:=3 EndSub

      示例說明:Add方法帶有4個可選的參數(shù),其中參數(shù)Before和參數(shù)After 指定所增加的工作表的位置,但兩個參數(shù)只能選一;參數(shù)Count用來指定增加的工作表數(shù)目。

      [示例04-02]復(fù)制工作表(Copy方法)SubCopyWorksheet()MsgBox“在當(dāng)前工作簿中復(fù)制工作表sheet1并將所復(fù)制的工作表放在工作表sheet2之前” Worksheets(“sheet1”).CopyBefore:=Worksheets(“sheet2”)MsgBox“在當(dāng)前工作簿中復(fù)制工作表sheet2并將所復(fù)制的工作表放在工作表sheet3之后” Worksheets(“sheet2”).CopyAfter:=Worksheets(“sheet3”)EndSub

      示例說明:

      Copy方法帶有2個可選的參數(shù),即參數(shù)Before和參數(shù)After,在使用時兩個參數(shù)只參選一。

      [示例04-03]移動工作表(Move方法)SubMoveWorksheet()MsgBox“在當(dāng)前工作簿中將工作表sheet3移至工作表sheet2之前” Worksheets(“sheet3”).MoveBefore:=Worksheets(“sheet2”)MsgBox“在當(dāng)前工作簿中將工作表sheet1移至最后” Worksheets(“sheet1”).MoveAfter:=Worksheets(Worksheets.Count)End Sub

      示例說明:

      Move方法與Copy方法的參數(shù)相同,作用也一樣。

      示例【04-04】隱藏和顯示工作表(Visible屬性)[示例04-04-01] SubtestHide()MsgBox“第一次隱藏工作表sheet1” Worksheets(“sheet1”).Visible=False MsgBox“顯示工作表sheet1” Worksheets(“sheet1”).Visible=True MsgBox“第二次隱藏工作表sheet1” Worksheets(“sheet1”).Visible=xlSheetHidden MsgBox“顯示工作表sheet1” Worksheets(“sheet1”).Visible=True MsgBox“第三次隱藏工作表sheet1” Worksheets(“sheet1”).Visible=xlSheetHidden MsgBox“顯示工作表sheet1” Worksheets(“sheet1”).Visible=xlSheetVisible MsgBox“第四隱藏工作表sheet1” Worksheets(“sheet1”).Visible=xlSheetVeryHidden MsgBox“顯示工作表sheet1” Worksheets(“sheet1”).Visible=True MsgBox“第五隱藏工作表sheet1” Worksheets(“sheet1”).Visible=xlSheetVeryHidden MsgBox“顯示工作表sheet1” Worksheets(“sheet1”).Visible=xlSheetVisible EndSub 示例說明:本示例演示了隱藏和顯示工作表的各種情形。其中,使用

      xlSheetVeryHidden常量來隱藏工作表,將不能通過選擇工作表菜單欄中的“格式”——“工作表”——“取消隱藏”命令來取消隱藏。[示例04-04-02] SubShowAllSheets()MsgBox“使當(dāng)前工作簿中的所有工作表都顯示(即將隱藏的工作表也顯示)” DimwsAsWorksheet For Each wsIn Sheets ws.Visible=True Next ws End Sub

      [示例04-05] 獲取工作表數(shù)(Count屬性)[示例04-05-01] SubWorksheetNum()Dim IAs Long i=Worksheets.Count MsgBox“當(dāng)前工作簿的工作表數(shù)為:”&Chr(10)&i EndSub

      [示例04-05-02] Sub WorksheetNum()Dim IAs Long i=Sheets.Count MsgBox“當(dāng)前工作簿的工作表數(shù)為:”&Chr(10)&i End Sub

      示例說明:在一個包含圖表工作表的工作簿中運行上述兩段代碼,將會得出不同的結(jié)果,原因是對于Sheets集合來講,工作表包含圖表工作表。應(yīng)注意Worksheets集合與Sheets集合的區(qū)別,下同。

      示例04-06]獲取或設(shè)置工作表名稱(Name屬性)[示例04-06-01] SubNameWorksheet()DimsNameAsString,sChangeNameAsString sName=Worksheets(2).Name MsgBox“ 當(dāng)前工作簿中第

      2個工作表的名字為:”&sNamesChangeName=“我的工作表 ”MsgBox“將當(dāng)前工作簿中的第3個工作表名改為:”&sChangeName Worksheets(3).Name=sChangeName EndSub 示例說明:使用Name屬性可以獲取指定工作表的名稱,也可以設(shè)置工作表的名稱。

      第三篇:EXCEL操作_add工作表

      方法:LPDISPATCH Add(VARIANT& Before, VARIANT& After, VARIANT& Count, VARIANT& Type);

      Before Variant 類型,可選。指定工作表對象,新建的工作表將置于此工作表之前。

      AfterVariant 類型,可選。指定工作表對象,新建的工作表將置于此工作表之后。

      Count Variant 類型,可選。要新建的工作表的數(shù)目。默認(rèn)值為 1。

      Type Variant 類型,可選。指定工作表類型??蔀橐韵?XlSheetType 常量之一:xlWorksheet、xlChart、xlExcel4MacroSheet 或 xlExcel4IntlMacroSheet。默認(rèn)值為 xlWorksheet。

      說明 如果 Before 和 After 兩者均省略,則新建的工作表將插入到活動工作表之前。

      1、未指定參數(shù)1、2

      CWorksheets ExcelSheets;

      ExcelSheet.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);//添加新的工作表

      //Before 和 After 兩者均省略,則新建的工作表將插入到活動工作表之前。

      2、指定參數(shù)2

      CWorksheet Worksheet;

      Worksheet=ExcelSheet.get_Item(COleVariant((long)1));

      ExcelSheet.Add(vtMissing, _variant_t(Worksheet),_variant_t((long)1),vtMissing);

      //添加新的工作表:位置在Worksheet即(Sheet1)后面

      第四篇:11年最新操作表

      二0一一縣(區(qū))綜治暨平安建設(shè)檢查考核操作表

      (一)縣區(qū): 檢查考核時間:2011年12月 日

      單位 項目 檢查內(nèi)容、方法

      1、綜治和平安建設(shè)在黨政綜合考核總分不低于10%(查縣區(qū)委正式文件,帶回復(fù)印件)、兩次以上專題研究綜治和平安建設(shè)工作的常委會會議紀(jì)要(研究推動解決哪些問題,帶回復(fù)印件),與鄉(xiāng)鎮(zhèn)(街道)、綜治單位簽綜治責(zé)任書(必須為縣區(qū)委書記與所有鄉(xiāng)街和綜治單位簽訂,看是否與所有鄉(xiāng)鎮(zhèn)簽訂),3分,有一項不合格的扣1分; 2、2011黨政主要領(lǐng)導(dǎo)、分管領(lǐng)導(dǎo)以及綜治成員單位分管領(lǐng)導(dǎo)抓綜治和平安建設(shè)實績檔案(查建多少份檔案,并帶回縣區(qū)主要領(lǐng)導(dǎo)、分管領(lǐng)導(dǎo)的實績檔案復(fù)印件)、組織部門在提拔任用干部書面征求綜治部門意見(將所有書面征求意見的復(fù)印件帶回)、黨政領(lǐng)導(dǎo)干部表彰獎勵征求綜治部門意見(將所有征求意見復(fù)印件帶回),3分;不合格的有一項扣1分;

      3、綜治辦人員達(dá)3人、與創(chuàng)建辦人員合計達(dá)6人(查辦公桌、會議記錄、工作記錄,并將人員調(diào)整文件帶回),1分。

      1、創(chuàng)新社會管理做好群眾工作的意見(查黨委、政府正式文件)、社會管理工作方案(查綜治委正式文件),將社會管理納入十二五規(guī)劃(將政府發(fā)文復(fù)印件帶回),2分;

      2、社會管理創(chuàng)新綜合試點的意見、選取綜合試點的單位、鄉(xiāng)鎮(zhèn)(街道)工作方案及工作成效(將試點文件帶回),2分;

      3、流動人口服務(wù)管理、預(yù)防青少年違法犯罪、校園周邊治安綜合治理、社區(qū)矯正、刑釋解教等工作意見、總結(jié),2分.檢查結(jié)果(得分)組織領(lǐng)導(dǎo)(7分)綜 社會管理 治 辦(6分)責(zé)任落實

      1、開展兩次以上平安建設(shè)督查(查通知、實地檢查記錄、通報,將兩次檢查通報、警示、一票否決的文件帶回),1分;,1分。(2分)

      2、綜治五部門聯(lián)席會議、綜治成員單位開展述職工作情況(查聯(lián)席會會議記錄和述職會議的通知、報告)

      1、社會穩(wěn)定風(fēng)險評估工作(查推進(jìn)風(fēng)險評估的意見部署、具體評估的記錄),1分;,1分; 維護(hù)穩(wěn)定

      2、加強國家安全防線工作、重大社情掌控平臺試點工作(查意見方案,工作部署)

      3、大調(diào)解工作(查司法部門牽頭人民調(diào)解、法制部門牽頭行政調(diào)解、人民法院牽頭訴訟調(diào)解以及大調(diào)解對接機制的文件(5分)以及縣區(qū)調(diào)處中心的組織機構(gòu)和專門調(diào)處小組的文件),1分;

      4、矛盾糾紛大排查(查排查文件、每月排查調(diào)處報表、每月社會穩(wěn)定和社會治安分析情況報告),2分。30分 治安防控

      1、防控體系建設(shè)(查計劃、技防建設(shè)計劃,將老小區(qū)和城中村防范設(shè)施改造列入政府規(guī)劃的文件復(fù)印帶回),2分;

      2、社會治安重點地區(qū)排查整治工作(查工作方案、排查出的突出問題、采取掛牌整治等舉措和情況總結(jié)),1分;(5分)

      3、巡防工作(查專職巡防大隊人員花名冊和工資發(fā)放表;群防群治紅袖標(biāo)工程建設(shè)意見、季度督查情況),2分。

      1、等級化創(chuàng)建(查安全鄉(xiāng)鎮(zhèn)(街道)、村(社區(qū))等級化創(chuàng)建活動的計劃、安排以及等級評定和排名情況),2分;

      2、系列平安創(chuàng)建(查意見方案及及平安校園、平安醫(yī)院、平安電力、平安金融、平安暢通縣區(qū)、平安文化娛樂場所、平基層基礎(chǔ) 安企業(yè)、平安宗教場所、平安工地、平安市場或商場、平安機關(guān)、平安村(社區(qū))、平安家庭創(chuàng)建意見方案、開展1,2分;(5分)次以上活動記錄,上述活動缺一項扣0.5分)

      3、綜治組織(查政法綜治中心實體化運作、鄉(xiāng)村兩級綜治辦規(guī)范化建設(shè)的意見,鄉(xiāng)鎮(zhèn)綜治辦專職副主任、綜治專干化名冊,看是否達(dá)到省定標(biāo)準(zhǔn)),1分。

      二0一一縣區(qū)綜治暨平安建設(shè)檢查考核操作表

      (二)縣區(qū): 檢查考核時間:2011年12月 日

      單位 檢查項目 檢查內(nèi)容、方法 檢查結(jié)果(得分)

      1、組織機構(gòu)(查成立綜治和平安建設(shè)領(lǐng)導(dǎo)領(lǐng)導(dǎo)小組和辦公室的文件、有無專人負(fù)責(zé)綜治和平安建設(shè)工作),1分;

      2、陣地建設(shè)(查成立創(chuàng)建辦的文件、創(chuàng)建辦有無辦公場所、是否掛牌),1分; 組織領(lǐng)導(dǎo)

      3、專題研究綜治和平安建設(shè)工作的黨委會議記錄(查會議次數(shù)、研究解決哪些(4分)實際問題),1分;

      4、工作部署(查綜治和平安建設(shè)工作意見、工作部署、工作總結(jié)),1分。城 管 局 15分 矛盾化解(5分)

      1、門衛(wèi)安全值守(查有幾個門衛(wèi)值守、門衛(wèi)的年齡、看是否對進(jìn)出人員進(jìn)行詢問登記),1分; 安全防范

      2、技防建設(shè)(查是否安裝技防監(jiān)控、有幾個技防探頭),1分;(4分)

      3、值守制度(查安全防范工作制度、值班表、值班記錄是否健全完善),1分;

      4、綜治宣傳(查有無綜治和平安建設(shè)工作宣傳宣傳標(biāo)語、橫幅或圖片),1分。

      1、矛盾排查(查矛盾糾紛排查調(diào)處工作方案、工作機構(gòu)、排查出哪些問題和苗頭隱患、是否有不安定因素排查登記、落實哪些措施)1分;

      2、定期分析研判(查每月社會治安和社會穩(wěn)定分析研判報告)1分;

      3、社會穩(wěn)定風(fēng)險評估評估工作(查社會穩(wěn)定風(fēng)險評估工作的貫徹落實意見和具體事項的風(fēng)險評估記錄),5分。

      1、基層聯(lián)系點平安結(jié)對共建工作(查工作方案和結(jié)對幫扶情況),1分;

      2、開展平安機關(guān)創(chuàng)建(查工作意見、工作部署和開展情況),1分。機關(guān)創(chuàng)建(2分)

      二0一一年鄉(xiāng)鎮(zhèn)(街道)綜治和平安建設(shè)檢查考核操作表

      (三)縣區(qū): 鄉(xiāng)鎮(zhèn)(街道): 時間:2011年12月 日

      單位 檢查項目 人員配備(3分)責(zé)任落實(4分)檢查內(nèi)容、方法

      1、專職副主任(查姓名、任命文件、本人工作記錄,將人員任命文件帶回,兼職的一律扣分),1分;

      2、綜治專干(5萬人口以下1-2名,5萬—10萬人口2名,10萬人口以上3名,查姓名、任命文件、本人工作記錄,將人員任命文件帶回,與從事司法、組織、信訪等工作的人員進(jìn)行核對,兼職的一律扣分),2分。

      1、綜治責(zé)任書(查是否為黨委書記簽訂,與村及派出所、司法所、信訪辦等單位的責(zé)任書),1分;

      2、綜治和平安建設(shè)工作在黨政綜治考核所占分值達(dá)10%以上(查鄉(xiāng)鎮(zhèn)目標(biāo)考核的文件),1分;

      3、每季度一次綜治工作督查(查督查通知、方案、操作表、檢查通報、整改情況),1分;

      4、工作部署(查綜治和平安建設(shè)實施意見、方案),1分。

      1、社會管理工作(查計劃方案、組織機構(gòu)和工作開展情況),1分;

      2、矛盾糾紛排查化解(查大排查工作方案、排查出問題登記、落實的工作舉措和每月社會治安和社會穩(wěn)定分析研判報告),2分;

      3、社會治安重點地區(qū)排查整治工作(查工作方案、突出問題排查登記、采取的整治措施、取得的工作成效),1分;

      4、公眾安全感建設(shè)(查提升公眾安全感的工作方案、組織部署、影響公眾安全感突出問題排查登記及整改等情況),2分。檢查結(jié)果(得分)綜 治 辦 17分 重點工作開展情況(6分),2分 基層創(chuàng)建

      1、開展鄉(xiāng)鎮(zhèn)(街道)等級化創(chuàng)建工作(工作方案、村等級評定排名等)

      2、系列平安創(chuàng)建[查意見方案以及開展平安村(社區(qū))、平安家庭、平安醫(yī)院、平安校園等創(chuàng)建工作的(4分)工作方案、措施推進(jìn)、工作成效],2分。機制建設(shè)

      1、陣地建設(shè)(查有無服務(wù)大廳、實行8個部門以上集中辦公),2分;

      2、值班值守(查中心是否明確每天帶班領(lǐng)導(dǎo)、是否有值班表、中心人員是否在崗在位),1分;

      3、制度規(guī)范(查中心職責(zé)任務(wù)、工作流程、組織機構(gòu)規(guī)范明確、統(tǒng)一上墻),1分。政法綜治中心 7分(4分),1分; 工作運轉(zhuǎn)

      1、工作例會(查每周組織召開中心組成部門工作例會的會議記錄)

      2、統(tǒng)籌督辦(查矛盾糾紛聯(lián)調(diào)、社會治安聯(lián)防、突出問題聯(lián)治、重點工作聯(lián)動、平安建設(shè)聯(lián)創(chuàng)、社(3分)會管理聯(lián)抓等六聯(lián)工作機制推進(jìn)落實、聯(lián)席會辦督辦的工作記錄),2分。3

      二0一一年鄉(xiāng)鎮(zhèn)(街道)綜治暨平安建設(shè)檢查考核操作表

      (四)單位 檢查項目 技防中心(2分)

      縣區(qū): 鄉(xiāng)鎮(zhèn)(街道): 時間:2011年12月 日 檢查內(nèi)容、方法

      1、硬件建設(shè)(查技防中心是否達(dá)到農(nóng)村8個、城區(qū)12個探頭建設(shè)標(biāo)準(zhǔn),記明有多少技防探頭、正常運轉(zhuǎn)的數(shù)量和監(jiān)控記錄保存時間),1分;

      2、中心值守(查中心值班表和每日技防值守記錄以及運用成果),1分; 檢查結(jié)果(得分)派 出 所 10分 隊伍建設(shè)(查專職保安、外來人口協(xié)管員的值班表、工資發(fā)放表、每日巡防記錄、值班表、考勤記錄等,看是否達(dá)到農(nóng)村人口萬分之八,城區(qū)人口萬分之十;300—500流動人口1名協(xié)管員的配備標(biāo)準(zhǔn),不達(dá)標(biāo)的按比例扣分,扣完2分為止)。

      1、公眾安全感建設(shè)(查工作計劃,特別是警民聯(lián)系、入戶宣傳、巡防值守、群防群治、未破案件回,2分; 安全感建設(shè) 訪等工作措施落實情況)

      2、社會治安重點地區(qū)排查整治工作(查計劃方案、排查出的突出問題和工作開展情況),1分;(5分)

      3、群防群治工作(查工作方案、巡防記錄、檢查記錄和群防群治人員化名冊),1分;

      4、破案打擊(查1-11月份刑事發(fā)案數(shù)、破案數(shù),看是否達(dá)到45%破案率),1分。保安輔警(2分)矛盾化解(1分)人員配備(1分)公調(diào)對接(查公調(diào)對接方案、組織、調(diào)處糾紛登記和設(shè)立公調(diào)對接室、配備兩名專職調(diào)解員),1分。查司法所人員姓名、職務(wù)、任命文件、工作筆記、會議記錄等,看是否達(dá)到3人標(biāo)準(zhǔn)。司 法 所 6分 安全感建設(shè) 加強安全感建設(shè)的工作計劃以及開展法制宣傳教育的工作計劃、工作進(jìn)展情況(1分)

      1、調(diào)處中心(查人員在崗在位、配備2名專職調(diào)解員的聘書),1分; 矛盾化解

      2、矛盾糾紛排查調(diào)處(查社會矛盾糾紛大排查工作方案、“三無”即無矛盾激化、無民轉(zhuǎn)刑案件、無,1分;(3分)群體性上訪創(chuàng)建方案,排查出哪些問題和每半月一次的矛盾糾紛排查調(diào)處報表和分析報告)

      3、大調(diào)解機制建設(shè)(查公調(diào)對接、訪調(diào)對接、勞資糾紛調(diào)處對接等工作意見、調(diào)處交接單),1分。特殊人群(1分)社區(qū)矯正(查工作計劃、社區(qū)矯正人員的入矯記錄、工作銜接審核報批記錄、每周一次電話管控記錄、每月組織一次見面管控記錄等)4

      二0一一年鄉(xiāng)鎮(zhèn)(街道)綜治和平安建設(shè)檢查操作表

      (五)縣區(qū): 鄉(xiāng)鎮(zhèn)(街道): 時間:2011年12月 日 單位 檢查項目 檢查內(nèi)容、方法

      1、組織機構(gòu)(查綜治辦是否掛牌、是否有辦公場所以及綜治辦職責(zé)、制度任務(wù)是否規(guī)范上墻,是否有工作計劃安排),1分;

      2、人員配備(查有人專抓綜治工作的村干部、是否在崗在位),1分;

      3、治保委、調(diào)解委(查治保委、調(diào)解委機構(gòu)是否健全、是否有調(diào)解室),1分;

      4、排查研判(查每周社會治安和社會穩(wěn)定情況排查記錄是否齊全規(guī)范),1分;

      5、綜治宣傳(查有無綜治和平安建設(shè)工作的宣傳標(biāo)語和橫幅),1分;

      6、群防群治(查紅袖標(biāo)義務(wù)巡防人員達(dá)到村不少于15人、社區(qū)不少于20人標(biāo)準(zhǔn)、通過調(diào)查走訪和現(xiàn)場查看有無紅袖標(biāo)人員開展巡邏防范),1分。

      1、人員配備(查是否配備社區(qū)(駐村)民警、專職保安是否達(dá)到社區(qū)2保安、村1名保安標(biāo)準(zhǔn),查人員姓名、值班表、工作記錄),1分;

      2、日常工作(查每日巡邏記錄、矛盾糾紛調(diào)解臺帳、調(diào)處多少起矛盾糾紛),1分。

      1、意見部署(查平安校園工作意見,有專人負(fù)責(zé)創(chuàng)建辦是否掛牌),1分;

      2、技防、設(shè)施防(查校園是否有技防監(jiān)控設(shè)施、有幾個探頭;是否建立校園警務(wù)室或校園110建立,有無專職保安人員值守并記明人員數(shù),是否配備安全防范設(shè)施),1分;

      3、法制教育(查是否聘請法制副校長、看聘書,兩次以上的法制教育,看講稿、計劃安排、法制教育計劃、臺賬),1分;

      4、綜治宣傳(查是否有綜治和平安建設(shè)宣傳標(biāo)語、橫幅)。走訪縣城和城區(qū)兩個居民小區(qū)

      1、創(chuàng)建氛圍(查有無綜治和平安建設(shè)宣傳標(biāo)語、橫幅),1分。

      2、巡邏防范(查有無專職保安人員值守、值班表和巡邏記錄,是否對進(jìn)出車輛和人員進(jìn)行詢問登記)

      3、技防、設(shè)施防(查有無安裝技防設(shè)施、有無全覆蓋,有無防范攀爬等設(shè)施),1分。檢查結(jié)果(得分)村(社區(qū))8分 綜治辦(6分)警務(wù)室(2分)學(xué) 校 4分 學(xué)校創(chuàng)建(4分)居民 小區(qū) 3分 治安防范(3分)5

      第五篇:vb操作EXCEL表的常用方法

      vb操作EXCEL表的常用方法(設(shè)計值,顏色,大小)2009-05-18 15:37 VB是常用的應(yīng)用軟件開發(fā)工具之一,由于VB的報表功能有限,而且一但報表格式發(fā)生變化,就得相應(yīng)修改程序,給應(yīng)用軟件的維護(hù)工作帶來極大的不便。因此有很多程序員現(xiàn)在已經(jīng)充分利用EXECL的強大報表功來實現(xiàn)報表功能。但由于VB與EXCEL由于分別屬于不同的應(yīng)用系統(tǒng),如何把它們有機地結(jié)合在一起,是一個值得我們研究的課題。

      一、VB讀寫EXCEL表:

      VB本身提自動化功能可以讀寫EXCEL表,其方法如下:

      1、在工程中引用Microsoft Excel類型庫:

      從“工程”菜單中選擇“引用”欄;選擇Microsoft Excel 9.0 Object Library(EXCEL2000),然后選擇“確定”。表示在工程中要引用EXCEL類型庫。

      2、在通用對象的聲明過程中定義EXCEL對象: Dim xlApp As Excel.Application Dim xlBook As Excel.WorkBook Dim xlSheet As Excel.Worksheet

      3、在程序中操作EXCEL表常用命令:

      Set xlApp = CreateObject(“Excel.Application”)'創(chuàng)建EXCEL對象

      Set xlBook = xlApp.Workbooks.Open(“文件名”)'打開已經(jīng)存在的EXCEL工件簿文件 xlApp.Visible = True '設(shè)置EXCEL對象可見(或不可見)Set xlSheet = xlBook.Worksheets(“表名”)'設(shè)置活動工作表 xlApp.Cells(row, col)=值 '給單元格(row,col)賦值

      XLApp.Cells(i, 1).Interior.ColorIndex = i'設(shè)計單元格顏色i=1--56 xlSheet.PrintOut '打印工作表 xlBook.Close(True)'關(guān)閉工作簿 xlApp.Quit '結(jié)束EXCEL對象

      Set xlApp = Nothing '釋放xlApp對象

      xlBook.RunAutoMacros(xlAutoOpen)'運行EXCEL啟動宏 xlBook.RunAutoMacros(xlAutoClose)'運行EXCEL關(guān)閉宏 自己用代碼就可以獲取顏色列表了 Sub yansecode()For i = 1 To 56 XlApp.Cells(i, 1)= i xlapp.Cells(i, 1).Interior.ColorIndex = i Next End Sub

      4、在運用以上VB命令操作EXCEL表時,除非設(shè)置EXCEL對象不可見,否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關(guān)閉EXCEL,同時也可對EXCEL進(jìn)行操作。但在EXCEL操作過程中關(guān)閉EXCEL對象時,VB程序無法知道,如果此時使用EXCEL對象,則VB程序會產(chǎn)生自動化錯誤。形成VB程序無法完全控制EXCEL的狀況,使得VB與EXCEL脫節(jié)。

      二、EXCEL的宏功能:

      EXCEL提供一個Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點擊右鍵菜單的“插入模塊”,則增加一個“模塊1”,在此模塊中可以運用Visual Basic語言編寫函數(shù)和過程并稱之為宏。其中,EXCEL有兩個自動宏:一個是啟動宏(Sub Auto_Open()),另一個是關(guān)閉宏(Sub Auto_Close())。它們的特性是:當(dāng)用EXCEL打含有啟動宏的工簿時,就會自動運行啟動宏,同理,當(dāng)關(guān)閉含有關(guān)閉宏的工作簿時就會自動運行關(guān)閉宏。但是通過VB的自動化功能來調(diào)用EXCEL工作表時,啟動宏和關(guān)閉宏不會自動運行,而需要在VB中通過命令xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros(xlAutoClose)來運行啟動宏和關(guān)閉宏。

      三、VB與EXCEL的相互勾通:

      充分利用EXCEL的啟動宏和關(guān)閉宏,可以實現(xiàn)VB與EXCEL的相互勾通,其方法如下:

      在EXCEL的啟動宏中加入一段程序,其功能是在磁盤中寫入一個標(biāo)志文件,同時在關(guān)閉宏中加入一段刪除此標(biāo)志文件的程序。VB程序在執(zhí)行時通過判斷此標(biāo)志文件存在與否來判斷EXCEL是否打開,如果此標(biāo)志文

      件存在,表明EXCEL對象正在運行,應(yīng)該禁止其它程序的運行。如果此標(biāo)志文件不存在,表明EXCEL對象已被用戶關(guān)閉,此時如果要使用EXCEL對象運行,必須重新創(chuàng)建EXCEL對象。

      四、舉例:

      1、在VB中,建立一個FORM,在其上放置兩個命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸入如下程序:

      Dim xlApp As Excel.Application '定義EXCEL類 Dim xlBook As Excel.Workbook '定義工件簿類 Dim xlsheet As Excel.Worksheet '定義工作表類 Private Sub Command1_Click()'打開EXCEL過程

      If Dir(“D:tempexcel.bz”)= “" Then '判斷EXCEL是否打開 Set xlApp = CreateObject(”Excel.Application“)'創(chuàng)建EXCEL應(yīng)用類 xlApp.Visible = True '設(shè)置EXCEL可見

      Set xlBook = xlApp.Workbooks.Open(”D:tempbb.xls“)'打開EXCEL工作簿 Set xlsheet = xlBook.Worksheets(1)'打開EXCEL工作表 xlApp.Activate '激活工作表

      xlApp.Cells(1, 1)= ”abc“ '給單元格1行駛列賦值 xlBook.RunAutoMacros(xlAutoOpen)'運行EXCEL中的啟動宏

      Else MsgBox(”EXCEL已打開“)End If End Sub Private Sub Command2_Click()If Dir(”D:tempexcel.bz“)<> ”“ Then '由VB關(guān)閉EXCEL xlBook.RunAutoMacros(xlAutoClose)'執(zhí)行EXCEL關(guān)閉宏 xlBook.Close(True)'關(guān)閉EXCEL工作簿

      xlApp.Quit '關(guān)閉EXCEL End If Set xlApp = Nothing '釋放EXCEL對象

      End End Sub

      2、在D盤根目錄上建立一個名為Temp的子目錄,在Temp目錄下建立一個名為”bb.xls“的EXCEL文件。

      3、在”bb.xls“中打開Visual Basic編輯器,在工程窗口中點鼠標(biāo)鍵選擇插入模塊,在模塊中輸入入下程序存盤:

      Sub auto_open()Open ”d:tempexcel.bz“ For Output As #1 '寫標(biāo)志文件

      Close #1 End Sub Sub auto_close()Kill ”d:tempexcel.bz“ '刪除標(biāo)志文件 End Sub

      4、運行VB程序,點擊EXCEL按鈕可以打開EXCEL系統(tǒng),打開EXCEL系統(tǒng)后,VB程序和EXCEL分別屬兩個不同的應(yīng)用系統(tǒng),均可同時進(jìn)行操作,由于系統(tǒng)加了判斷,因此在VB程序中重復(fù)點擊EXCEL按鈕時會提示EXCEL已打開。如果在EXCEL中關(guān)閉EXCEL后再點EXCEL按鈕,則會重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關(guān)閉EXCEL。這樣就實現(xiàn)了VB與EXCEL的無縫連接。

      范例一

      Option Explicit Private Sub Command1_Click()Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlChar As New Excel.Chart Dim xlSheet As New Excel.Worksheet '建立需要的對象

      Set xlApp = New Excel.Application Set xlApp = CreateObject(”Excel.Application“)Set xlBook = xlApp.Workbooks.Open(”F:BOOK1.xls“)Set xlSheet = xlBook.Worksheets(1)'建立Chart 對象

      Set xlChar = xlApp.Charts.Add()xlChar.ChartType = xlLineMarkers Call xlChar.SetSourceData(xlSheet.Range(”A1:E7“), xlColumns)'原數(shù)據(jù) ActiveChart.Location Where:=xlLocationAsObject, Name:=”Sheet1“ ActiveChart.HasLegend = True ActiveChart.Legend.Select Selection.Position = xlRight '選中建立的ChartObjects對象

      ActiveSheet.ChartObjects(”圖表 1“).Activate ActiveChart.PlotArea.Select ActiveChart.Legend.Select '刪除 退出(&X)菜單

      Dim i As Integer For i = 1 To xlApp.CommandBars(”File“).Controls.Count Debug.Print xlApp.CommandBars(”File“).Controls(i).Caption If Left$(xlApp.CommandBars(”File“).Controls(i).Caption, 2)= ”關(guān)閉“ Then xlApp.CommandBars(”File“).Controls(i).Visible = False 'Delete Exit For End If Next '顯示EXCEL xlApp.Visible = True End Sub 范例二 RichTextBox1 Dim xlApp As Excel.Application Set xlApp = New Excel.Application----然后,可以用這些變量來訪問在EXCEL應(yīng)用程序中的從屬對象、以及這些對象的屬性和方法。例如:

      Set xlApp = CreateObject(”Excel.Application“)‘激活EXCEL應(yīng)用程序

      xlApp.Visible = False ‘隱藏EXCEL應(yīng)用程序窗口 Set xlBook = xlApp.Workbooks.Open(strDestination)‘打開工作簿,strDestination為一個EXCEL報表文件 Set xlSheet = xlBook.Worksheets(1)‘設(shè)定工作表

      VB借助EXCEL實現(xiàn)表格設(shè)計

      1、定義EXCEL對象變量 dim x as excel.application

      2、VB中,啟動EXCEL set x=createobject(”excel.application“)

      3、新建一個EXCEL工作簿 x.workbooks.add

      4、選定工作表1 set xsheet=xbook.worksheets(1)

      5、指定單元格,并賦值

      xsheet.cell(1,1)=ret.fields(0)

      6、指定EXCEL列寬

      xsheet.column(1).columnwidth=10

      7、RANGE()函數(shù),選定單元格區(qū)域 range(cells(1,1),cells(10,20))

      8、設(shè)置EXCEL字體

      xsheet.range(cells(1,1),cells(10,20)).font.name=”黑體“

      9、設(shè)置EXCEL為粗體

      xsheet.range(cells(1,1),cells(10,20)).fontbold=true

      10、設(shè)置EXCEL表格邊框

      xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinuous

      11、運行時,顯示EXCEL或隱藏EXCEL x.visible=true

      12、保存工作簿 xbook save

      13、退出EXCEL x.quit

      14、交還控制權(quán)給EXCEL set x=nothing

      15、打印EXCEL表

      x.active.window.selectedsheets.printout copies=numcopies

      16、退出EXCEL時,不出現(xiàn)保存提示。x.displayalerts=false

      17、怎樣運用EXCEL公式?

      x.range(”A3“).formula= ”=max(A1,A2)“

      18、EXCEL代碼獲取技巧

      打開EXCEL中的工具----宏----錄制新宏,然后進(jìn)行手工操作,結(jié)束后把所錄的宏代碼貼進(jìn)你的VB程序就行。

      19、合并單元格代碼

      x.range(”A2:A5“).inergecells=true 20、自動調(diào)整列寬代碼

      x.column(”A:I“).autofit ' a到 I列自動調(diào)整列寬

      21、文本自動換行代碼 x.rows(3).wraptext=true

      22、設(shè)置字體顏色

      x.rows(1).font.colorindex=4

      23、打印預(yù)覽代碼

      x.worksheets.printpreview

      24、打開EXCEL文件

      x.workbooks.open filename:=”c:my documentsmy vb lgx dy.xls“

      ========================================== 如何用VB控制EXCEL生成報表

      做為一種簡捷、系統(tǒng)的 Windows應(yīng)用程序開發(fā)工具,Visual Basic 6 具有強大的數(shù)據(jù)處理功能,提供了多種數(shù)據(jù)訪問方法,可以方便地存取Microsoft SQL Server、Oracle、XBase等多種數(shù)據(jù)庫,被廣泛應(yīng)用于建立各種信息管理系統(tǒng)。但是,VB缺乏足夠的、符合中文習(xí)慣的數(shù)據(jù)表格輸出功能,雖然使用Crystal Report控件及 Crystal Reports程序可以輸出報表,但操作起來很麻煩,中文處理能力也不理想。Excel作為Micorsoft公司的表格處理軟件在表格方面有著強大的功能,我們可用VB5編寫直接控制Excel操作的程序,方法是用VB的OLE自動化技術(shù)獲取Excel 2000 的控制句柄,從而直接控制Excel 2000的一系列操作。

      下面給出一個實例:

      首先建立一個窗體(FORM1)在窗體中加入一個DATA控件和一按鈕,引用Microsoft Excel類型庫: 從”工程“菜單中選擇”引用“欄;選擇Microsoft Excel 9.0 Object Library;選擇”確定“。然后在FORM的LOAD事件中加入:

      Private Sub Form_Load()'數(shù)據(jù)庫及表可以另選,本文以Nwind.mdb為例

      Data1.DatabaseName = ”C:Program FilesMicrosoft Visual StudioVB98Nwind.mdb“ Data1.RecordSource = ”Customers“ Data1.Refresh End Sub 在按鈕的CLICK事件中加入 Private Sub Command1_Click()Dim Irow, Icol As Integer Dim Irowcount, Icolcount As Integer Dim Fieldlen()'存字段長度值 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet

      Set xlApp = CreateObject(”Excel.Application“)Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1)With Data1.Recordset.MoveLast If.RecordCount < 1 Then MsgBox(”Error 沒有記錄!“)Exit Sub End If Irowcount =.RecordCount '記錄總數(shù) Icolcount =.Fields.Count '字段總數(shù) ReDim Fieldlen(Icolcount).MoveFirst For Irow = 1 To Irowcount + 1 For Icol = 1 To Icolcount Select Case Irow Case 1 '在Excel中的第一行加標(biāo)題

      xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))= True Then Fieldlen(Icol)= LenB(.Fields(Icol1))End If

      xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)'Excel列寬等于字段長

      xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))If Fieldlen(Icol)< Fieldlen1 Then xlSheet.Columns(Icol).ColumnWidth = Fieldlen1 '表格列寬等于較長字段長 Fieldlen(Icol)= Fieldlen1 '數(shù)組Fieldlen(Icol)中存放最大字段長度值 Else xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)End If xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1)).Font.Name = ”黑體“ '設(shè)標(biāo)題為黑體字

      .Range(.Cells(1, 1),.Cells(1, Icol1)).Borders.LineStyle = xlContinuous '設(shè)表格邊框樣式 End With xlApp.Visible = True '顯示表格 xlBook.Save '保存

      Set xlApp = Nothing '交還控制給Excel End With End Sub 本程序在中文Windows98、中文VB6下通過。

      ===== VB5.0調(diào)用Office97技巧

      Visual Basic 5.0具有簡單、易學(xué)等特點,深受初學(xué)者的歡迎,但也有一些不如人意的地方。例如,不能像Word 97那樣進(jìn)行拼寫檢查,不能像Excel 97那樣具有很多的函數(shù)。如果我們能將Word 97和Exce l97的功能使用在Visual Basic 5.0中,就可以使VB達(dá)到錦上添花的目的。

      我們知道所有Office 97 應(yīng)用程序都提供了ActiveX對象,我們可以在Visual Basic 5.0中使用它們調(diào)用Word 97 要想在VB中調(diào)用Word 97,首先要打開VB的”工程“菜單中的”引用“項目,并在該項目對話框中選定”Microsoft Word 8.0 Object Library“就可以了。

      下面我們舉例說明調(diào)用Word 97中的”拼寫檢查“和”單詞統(tǒng)計“功能。首先新建一個工程并在窗體上放置一個TextBox控件和兩個CommandButton控件,然后添入如下的代碼:

      Option Explicit Dim Doc As New Document Dim Visi As Boolean ′拼寫檢查

      Private Sub Command1-Click()Form1.Caption = ”拼寫檢查“ Doc.Range.Text = Text1 ′確定范圍

      Doc.Application.Visible = True ′將Word 97變?yōu)榭梢? AppActivate Doc.Application.Caption ′激活Word 97 Doc.Range.CheckSpelling ′拼寫檢查

      Text1 = Doc.Range.Text

      Text1 = Left(Text1, Len(Text1)- 1)AppActivate Caption End Sub ′統(tǒng)計單詞數(shù)

      Private Sub Command2-Click()Dim Dlg As Word.Dialog Doc.Range = Text1.Text Set Dlg = Doc.Application.Dialogs(wdDialogDocumentStatistics)Dlg.Execute ′統(tǒng)計單詞和字符

      Form1.Caption =”單詞數(shù):“ & Str(Dlg.Words)& ”詞“ & Str(Dlg.Characters)& ”字符“ ′顯示統(tǒng)計結(jié)果 End Sub Top 范例三

      Private Sub Form-Load()Form1.Caption =”調(diào)用Word 97“ Text1.Text = ”“ Command1.Caption = ”拼寫檢查“ Command2.Caption = ”統(tǒng)計單詞“ ′使應(yīng)用程序可見

      Visi = Doc.Application.Visible End Sub ′關(guān)閉應(yīng)用程序

      Private Sub Form-Unload(Cancel As Integer)

      If Visi Then ′關(guān)閉文件 Doc.Close savechanges:=False Else Doc.Application.Quit savechanges:=False ′關(guān)閉 Word 97 End If End Sub 調(diào)用Excel 97 使用Excel Sheet對象的技術(shù)可以處理可變數(shù)量的數(shù)據(jù),并將結(jié)果最后送到你的Visual Basic 應(yīng)用程序中。例子如下:

      新建一個工程并在新建的窗體上放置兩個TextBox控件和一個CommandButton控件及六個Label控件。建設(shè)中的窗體如圖2所示。

      程序代碼如下: Option Explicit Private Sub Command1-Click()Dim xObject As Object ′調(diào)用Excel 97 Set xObject = CreateObject(”Excel.Sheet“)Set xObject = xObject.Application.ActiveWorkbook.ActiveSheet xObject.Range(”A1“).Value = Text1.Text ′將數(shù)值送入Excel 97的A1單元格 xObject.Range(”A2“).Value = Text2.Text ′將數(shù)值送入Excel 97的A2單元格 xObject.Range(”A3“).Formula = ”=MAX(A1,A2)“ ′將最大值送入A3單元格

      xObject.Range(”A4“).Formula = ”=ATAN(A1/A2)*180/PI()“ ′將反正切值送入A4單元格

      ′顯示計算的結(jié)果

      Label1.Caption = xObject.Range(”A3“).Value Label2.Caption = xObject.Range(”A4“).Value

      Set xObject = Nothing End Sub Private Sub Form_Load()Text1.Text = ”“ Text2.Text = ”“ Label1.Caption = ”“ Label2.Caption = ”“ End Sub 該程序的作用是:首先在兩個文本框(Text1和Text2)輸入數(shù)值并分別將輸入的數(shù)值送入Excel 97的”A1“和”A2“單元格中,然后用Excel 97中的”Max()“函數(shù)將計算的結(jié)果送入”A3“ 單元格中;用反正切函數(shù)”ATAN()“進(jìn)行計算并將結(jié)果送入”A4“ 單元格中,最后輸出。

      ===== 淺談Excel 的VB編程

      Excel是一個優(yōu)秀的電子表格軟件,如果你編的程序需要以報表的形式顯示最終結(jié)果,它會是個不錯的選擇。你可以通過VB控制Excel顯示數(shù)據(jù)表格。如果你不愿意深入了解Excel這些瑣碎的細(xì)節(jié),也不是沒有權(quán)宜之計:你可以打開Excel中的工具→宏→錄制新宏,然后進(jìn)行手工操作,結(jié)束后把所錄的宏代碼貼進(jìn)你的VB程序就行。這樣得到的程序一般都能正常運行,但其中的宏代碼往往不夠簡潔,效率和可讀性都不高。

      ----Excel編程碰到的第一個問題是表頭。有時表頭的形式比較復(fù)雜,需要橫向或縱向合并單元格。請放心,只要沒有斜杠,Excel都能應(yīng)付得了。

      ----例如合并A2~A5這4個單元格,你錄制的宏代碼會是這樣: Range(”A2:A5“).Select With Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlBottom.WrapText = False.Orientation = 0.AddIndent = False.ShrinkToFit = False.MergeCells = False End With Selection.Merge----而自己編程只要一句 Range.(”A2:A5“).mergecells=True 就可以解決問題。

      ----表頭形式定了,再就是表頭的內(nèi)容。如果單元格中的文本長度超過了列寬,往往只能顯示部分內(nèi)容,行尾那一格的內(nèi)容則會”越境“進(jìn)入右邊那個空白單元格,很不美觀。這個問題可以通過在程序中設(shè)置列寬加以解決。

      ----Columns(14).columnwidth=12 '設(shè)置第14列列寬為12(缺省列寬為8.38)----如果你不愿意勞神去逐列估計實際所需的列寬,干脆來一行----Columns(”a:i“).autofit 'a到i列自動調(diào)整列寬----讓Excel隨機應(yīng)變吧。

      ----但也許你不喜歡這種方法,認(rèn)為表頭撐大了列寬,弄得瀏覽一張小表格還得向右滾動,太不方便了。要是能保持默認(rèn)列寬,讓文本自動換行就好了。沒問題,Excel包你滿意。

      ----Rows(3).WrapText=True '讓第三行各單元格中的文本自動換行

      ----不過你最好再加一句 Rows(3).VerticalAlignment = xlTop 讓表頭自動向上對齊,這樣比較符合習(xí)慣。

      ----你還可以給表頭打上底色,讓你的讀者不至于看了打哈欠。----Rows(2).Interior.ColorIndex = 5 '設(shè)置第2行底色為藍(lán)色----再給表格的標(biāo)題上色,這樣更醒目一點。----Rows(1).Font.ColorIndex=4----表頭完成后該填數(shù)據(jù)了,一個一個地填實在是太慢了,如果你的數(shù)據(jù)是存放在一個二維數(shù)組中,那問題就簡單多了。

      Dim Data(3,4)???? '數(shù)據(jù)處理 Range(”a2:d4“).Value=Data----這樣可以一次填入一個表的所有數(shù)據(jù),夠快了吧!不過提醒一句,Range對象大小最好與數(shù)組匹配,小了無法顯示所有數(shù)據(jù),大了則會在空白單元格只填入”N/A“表示沒有取得數(shù)據(jù)。

      ----如果需要在結(jié)果中顯示多個同樣規(guī)格的數(shù)據(jù)表,想在Range對象中加入循環(huán)變量,這也好辦。Dim cell11,cell2 Dim Data(3,4)???? For I =1 to 40

      ???? '數(shù)據(jù)處理

      Set cell1=Worksheets(”Sheet1“).Cells(5*I-4,1)Set cell2=Worksheets(”Sheet1“).Cells(5*I-2,4)Worksheets(”Sheet1“).Range(cell1,cell2).value=Data Next I----表格填完了,現(xiàn)在該打表格線了,以下幾條語句可以滿足你的要求: With Worksheets(”Sheet1“).Range(cell1,cell2).borders.LineStyle=xlContinuous.weight=xlThin End With----好了,關(guān)于Excel的VB編程今天就講到這兒吧。

      ===== 如何將Excel的文件導(dǎo)入Access文件?

      下面我已程序代碼做成模塊,只要導(dǎo)入必要之參數(shù)即可!此一模塊共有四個參數(shù):

      1、sSheetName:要導(dǎo)出資料的文件名稱(Sheet name),例如 Sheet1

      2、sExcelPath:要導(dǎo)出資料的 Excel 檔案路徑名稱(Workbook path),例如 C:book1.xls

      3、sAccessTable:要導(dǎo)入的 Access Table 名稱,例如 TestTable

      4、sAccessDBPath:要導(dǎo)入的 Access 檔案路徑名稱,例如 C:Test.mdb 在聲明中加入以下:

      Private Sub ExportExcelSheetToAccess(sSheetName As String, sExcelPath As String, sAccessTable As String, sAccessDBPath As String)Dim db As Database Dim rs As Recordset Set db = OpenDatabase(sExcelPath, True, False, ”Excel 5.0“)Call db.Execute(”Select * into [;database=“ & sAccessDBPath & ”].“ & sAccessTable & ” FROM [“ & sSheetName & ”$]“)MsgBox ”Table exported successfully.“, vbInformation, ”Yams“ End Sub 使用范例如下:將 C:book1.xls 中的 Sheet1 導(dǎo)入 C:Test.mdb 成為 TestTable ExportExcelSheetToAccess ”Sheet1“, ”C:book1.xls“, ”TestTable“, ”C:Test.mdb“ ===== Dim adoConnection As New ADODB.Connection Dim adoRecordset As New ADODB.Recordset 'OLE DB + ODBC Driver 方式: 'adoConnection.Open ”Data Provider=MSDASQL.1;driver=Microsoft

      Excel Driver

      (*.xls);DBQ=e:tempbook2.xls“ 'Microsoft.Jet.OLEDB.4.0 方式,(建議)adoConnection.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=e:tempbook2.xls;Extended Properties='Excel 8.0;HDR=Yes'“ adoRecordset.Open ”select * from [sheet1$]“, adoConnection, adOpenKeyset, adLockOptimistic '注: OLE DB + ODBC Driver 方式不支持以下語句,但 Microsoft.Jet.OLEDB.4.0 方式支持!adoConnection.Execute ”insert into [sheet1$](F1)values(3)“ adoRecordset.AddNew Array(”f1“, ”f2“, ”f3“, ”f4“), Array(1, 2, 3, 4)21

      VB操作excel 全面控制Excel 首先創(chuàng)建Excel對象,使用ComObj: DimExcelIDasExcel.Application SetExcelIDasnewExcel.Application 1)顯示當(dāng)前窗口: ExcelID.Visible:=True;2)更改Excel標(biāo)題欄:

      ExcelID.Caption:='應(yīng)用程序調(diào)用MicrosoftExcel';3)添加新工作簿: ExcelID.WorkBooks.Add;4)打開已存在的工作簿:

      ExcelID.WorkBooks.Open('C:ExcelDemo.xls');5)設(shè)置第2個工作表為活動工作表: ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)給單元格賦值:

      ExcelID.Cells[1,4].Value:='第一行第四列';7)設(shè)置指定列的寬度(單位:字符個數(shù)),以第一列為例: ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)設(shè)置指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例: ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米 9)在第8行之前插入分頁符:

      ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;參考代碼:ActiveSheet.HPageBreaks(1).Location=Range(”A22“)

      10)在第8列之前刪除分頁符:

      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)行頁面設(shè)置: a.頁眉:

      ExcelID.ActiveSheet.PageSetup.CenterHeader:='報表演示';b.頁腳:

      ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P頁';c.頁眉到頂端邊距2cm:

      ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035;d.頁腳到底端邊距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.頁面水平居中:

      ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035;j.頁面垂直居中:

      ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035;k.打印單元格網(wǎng)線:

      ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷貝操作: a.拷貝整個工作表:

      ExcelID.ActiveSheet.Used.Range.Copy;b.拷貝指定區(qū)域:

      ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.從A1位置開始粘貼:

      ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.從文件尾部開始粘貼:

      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)工作表保存:

      IfnotExcelID.ActiveWorkBook.Savedthen ExcelID.ActiveSheet.PrintPreview Endif 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è)置打開默認(rèn)工作薄數(shù)量 ExcelID.SheetsInNewWorkbook=3 29)'關(guān)閉時是否提示保存(true保存;false不保存)

      ExcelID.DisplayAlerts=False 30)設(shè)置拆分窗口,及固定行位置 ExcelID.ActiveWindow.SplitRow=1 ExcelID.ActiveWindow.FreezePanes=True 31)設(shè)置打印時固定打印內(nèi)容

      ExcelID.ActiveSheet.PageSetup.PrintTitleRows=”$1:$1“ 32)設(shè)置打印標(biāo)題

      ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=”“ 33)設(shè)置顯示方式(分頁方式顯示)ExcelID.ActiveWindow.View=xlPageBreakPreview 34)設(shè)置顯示比例

      ExcelID.ActiveWindow.Zoom=100 35)讓Excel響應(yīng)DDE請求

      Ex.Application.IgnoreRemoteRequests=False 26

      用VB操作EXCEL PrivateSubCommand3_Click()OnErrorGoToerr1 DimiAsLong DimjAsLong DimobjExlAsExcel.Application'聲明對象變量 Me.MousePointer=11'改變鼠標(biāo)樣式

      SetobjExl=NewExcel.Application'初始化對象變量

      objExl.SheetsInNewWorkbook=1 '將新建的工作薄數(shù)量設(shè)為1 objExl.Workbooks.Add '增加一個工作薄

      objExl.Sheets(objExl.Sheets.Count).Name=”book1“ '修改工作薄名稱

      objExl.Sheets.Add,objExl.Sheets(”book1“)‘增加第二個工作薄在第一個之后 objExl.Sheets(objExl.Sheets.Count).Name=”book2“ objExl.Sheets.Add,objExl.Sheets(”book2“)‘增加第三個工作薄在第二個之后 objExl.Sheets(objExl.Sheets.Count).Name=”book3“

      objExl.Sheets(”book1“).select'選中工作薄 Fori=1To50 '循環(huán)寫入數(shù)據(jù) Forj=1To5 If i= 1Then objExl.selection.NumberFormatLocal=”@“ '設(shè)置格式為文本 objExl.Cells(i,j)=” E “ & i & j Else objExl.Cells(i,j)=i&j EndIf

      Next Next

      objExl.Rows(”1:1“).select'選中第一行 objExl.selection.Font.Bold=True'設(shè)為粗體 objExl.selection.Font.Size=24'設(shè)置字體大小 objExl.Cells.EntireColumn.AutoFit '自動調(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=”打印時間:“&_ Format(Now,”yyyy年mm月dd日hh:MM:ss“)objExl.ActiveWindow.View=xlPageBreakPreview '設(shè)置顯示方式 objExl.ActiveWindow.Zoom=100 '設(shè)置顯示大小

      objExl.ActiveSheet.PageSetup.Orientation=xlLandscape ‘設(shè)置打印方向(橫向)'給工作表加密碼

      objExl.ActiveSheet.Protect”123“,DrawingObjects:=True, _ Contents:=True,Scenarios:=True objExl.Application.IgnoreRemoteRequests=False objExl.Visible=True'使EXCEL可見

      objExl.Application.WindowState=xlMaximized'EXCEL的顯示方式為最大化 objExl.ActiveWindow.WindowState=xlMaximized'工作薄顯示方式為最大化 objExl.SheetsInNewWorkbook=3 '將默認(rèn)新工作薄數(shù)量改回3個

      SetobjExl=Nothing '清除對象 Me.MousePointer=0'修改鼠標(biāo) ExitSub err1: objExl.SheetsInNewWorkbook=3 objExl.DisplayAlerts=False '關(guān)閉時不提示保存 objExl.Quit'關(guān)閉EXCEL objExl.DisplayAlerts=True'關(guān)閉時提示保存 SetobjExl=Nothing Me.MousePointer=0 EndSub 數(shù)據(jù)庫管理系統(tǒng)的開發(fā)人員經(jīng)常被編制復(fù)雜的報表所困擾,VB的水晶報表可以設(shè)計簡單的報表,但是設(shè)計出的報表缺乏靈活性。我利用VB操作EXCEL2000來生成復(fù)雜的報表。

      用VB創(chuàng)建外部EXCEL對象

      Microsoft Office應(yīng)用程序提供了一個頂層Application 對象。下面語句顯示了對Microsoft Excel的Application 對象的引用,用這些變量來訪問在EXCEL應(yīng)用程序中的從屬對象、以及這些對象的屬性和方法。:

      Dim xlApp As Excel.Application Set xlApp = New Excel.Application Set xlApp = CreateObject(”Excel.Application“)xlApp.Visible = False Set xlBook = xlApp.Workbooks.Open(strDestination)Set xlSheet = xlBook.Worksheets(1)29

      用EXCEL 2000設(shè)計報表的模版文件

      EXCEL 2000是一個非常優(yōu)秀的創(chuàng)建報表的工具。它提供的單元格任意合并、拆分功能基本上能夠滿足設(shè)計復(fù)雜報表的要求。它對任意一個單元格的格式隨意控制,因此它為設(shè)計復(fù)雜報表提供了強大的支持。

      根據(jù)用戶提供的報表,我們可以很快在EXCEL里生成模版文件。模版文件只是為了滿足用戶多方面的需求而設(shè)計的。并且隨著時間和實際情況的變化,表格格式有可能需要改變,我們設(shè)計一個模版文件可以“以不變應(yīng)萬變”了。在程序里我們不要對模版文件進(jìn)行操作,我們只需要對模版文件的一個拷貝進(jìn)行操作就行。程序代碼如下:

      Dim strSource, strDestination As String strSource = App.Path & ”Excelsdangan.xls“ strDestination = App.Path & ”ExcelsTemp.xls“ FileCopy strSource, strDestination Set mobjExcel = New Excel.Application Set mobjExcel = CreateObject(”Excel.Application“)mobjExcel.Visible = False Set mobjworkbook = mobjExcel.Workbooks.Open(strDestination)Set xlsheet = mobjworkbook.Worksheets(1)If Not opendatasource()Then MsgBox ”不能打開數(shù)據(jù)源!“, , ”提示“ Unload Me Exit Sub End If Private Function opendatasource()ssql=”select shgt_dah,shgt_yth,shgt_ajtm,shgt_chtrq, shgt_shjdw,shgt_wzysh,shgt_tzzhsh,shgt_gdrq,shgt_bz from shgtajb“ OpenResultset ssql, mrdors

      opendatasource = True Exit Function End Function 生成工作表內(nèi)容

      有了上述兩步工作的鋪墊,我們只要根據(jù)模板的格式給各單元格賦值如:

      Do while Not mrdors.Eof i=4 For j=0 to mrdors.rdocolumns.count-2 MobjExcel.Activesheet.cells(i,j+1)。value=mrdors.rdocolumns(j)。Value Next Mrdors.movenext Loop 打印報表

      生成了工作表后,就可以對EXCEL發(fā)出打印指令了。在執(zhí)行打印操作之前應(yīng)該對EXCEL臨時文件執(zhí)行一次保存操作,以免在退出應(yīng)用程序后EXCEL還提示用戶是否保存已修改的文件。如下語句:

      xlBook.Save xlSheet.PrintOut xlApp.Quit Private Sub Command3_Click()On Error GoTo err1 Dim i As Long Dim j As Long Dim objExl As Excel.Application'聲明對象變量 Me.MousePointer = 11'改變鼠標(biāo)樣式

      Set objExl = New Excel.Application'初始化對象變量 objExl.SheetsInNewWorkbook = 1 '將新建的工作薄數(shù)量設(shè)為1 objExl.Workbooks.Add '增加一個工作薄

      objExl.Sheets(objExl.Sheets.Count).Name = ”book1“ '修改工作薄名稱 objExl.Sheets.Add , objExl.Sheets(”book1“)'增加第二個工作薄在第一個之后 objExl.Sheets(objExl.Sheets.Count).Name = ”book2“ objExl.Sheets.Add , objExl.Sheets(”book2“)'增加第三個工作薄在第二個之后 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 '自動調(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 = ”打印時間: “ & _ 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可見

      objExl.Application.WindowState = xlMaximized'EXCEL的顯示方式為最大化 objExl.ActiveWindow.WindowState = xlMaximized'工作薄顯示方式為最大化 objExl.SheetsInNewWorkbook = 3'將默認(rèn)新工作薄數(shù)量改回3個 Set objExl = Nothing'清除對象 Me.MousePointer = 0'修改鼠標(biāo) Exit Sub err1: objExl.SheetsInNewWorkbook = 3 objExl.DisplayAlerts = False '關(guān)閉時不提示保存 objExl.Quit'關(guān)閉EXCEL objExl.DisplayAlerts = True'關(guān)閉時提示保存 Set objExl = Nothing Me.MousePointer = 0 End Sub =====================================

      Visual Basic簡稱(VB)是設(shè)計Windows應(yīng)用程序強有力的開發(fā)工具,“全球絕大多數(shù)Windows應(yīng)用程序都是用VB開發(fā)的”; Excel是目前使用最廣泛的辦公應(yīng)用軟件之一,它具有強大的數(shù)學(xué)分析與計算功能,包括很多VB沒有的求值數(shù)學(xué)表達(dá)式的函數(shù)和方法。由于Excel的應(yīng)用程序?qū)ο笫峭獠靠蓜?chuàng)建的對象,所以能從VB應(yīng)用程序內(nèi)部來程序化操縱Excel。本文結(jié)合自己的實踐和體會,談?wù)勅绾卧赩B6.0應(yīng)用程序中調(diào)用Exce12000,供大家參考。

      一、Excel對象模型

      為了在VB應(yīng)用程序中調(diào)用Excel,必須要了解Excel對象模型。Excel對象模型描述了Excel的理論結(jié)構(gòu),所提供的對象很多,其中最重要的對象,即涉及VB調(diào)用Excel最可能用到的對象有:

      二、調(diào)用Excel 在VB應(yīng)用程序中調(diào)用Excel,實質(zhì)是將Excel作為一個外部對象來引用,由Excel對象模型提供能從VB應(yīng)用程序內(nèi)部來程序化操縱的對象以及相關(guān)的屬性、方法和事件。

      1、在VB工程中添加對Excel類型庫的引用

      為了能從VB應(yīng)用程序中訪問Excel豐富的內(nèi)部資源,使Excel應(yīng)用程序運行得更快,需要在VB工程中添加對Excel類型庫的引用。具體步驟如下:

      a)從VB5“工程”菜單中選擇“引用”;

      b)在“引用”對話框中選擇Excel類型庫:”Microsoft Excel9.0 Object Library“; c)單擊左邊小方框,使之出現(xiàn)“√”符號; d)按“確定”退出。

      注:要想在VB應(yīng)用程序中調(diào)用Excel,你的計算機系統(tǒng)中必須安裝Excel。

      2、引用Application對象

      Application對象是Excel對象模型的頂層,表示整個Excel應(yīng)用程序。在VB應(yīng)用程序中調(diào)用Excel,就是使用Application對象的屬性、方法和事件。為此,首先要聲明對象變量:

      Dim VBExcel As Object 或直接聲明為Excel對象:

      Dim VBExcel As Excel.Application 在聲明對象變量之后,可用CreateObject函數(shù)或GetObject函數(shù)給變量賦值新的或已存在的Application對象引用。

      a)用CreateObject函數(shù)生成新的對象引用: Set VBExcel=CreateObject(”Excel.Application“)字符串“Excel.Application”是提供Excel應(yīng)用程序的編程ID,這個變量引用Excel應(yīng)用程序本身。b)用GetO場ect函數(shù)打開已存在的對象引用:

      Set AppExcel=GetObject(”SAMP.XLS“)上面語句打開文件SAMP.XLS。

      3、Application對象常用的屬性、方法 屬性、方法 方法

      Visible屬性 取True或False,表明Excel應(yīng)用程序是否可見。Left,Top屬性 Excel窗口的位置; Height, Width屬性 Excel窗口的大小;

      WindowState屬性 指定窗口的狀態(tài),?。篨IMaximized(最大化)X1 Minimized(最小化)x1 Normal(缺省)。Quit方法 退出Microsoft Excel;

      Calculate方法 重新計算所有打開的工作簿、工作表或單元格。Evaluate方法 求值數(shù)學(xué)表達(dá)式并返回結(jié)果。示例1:求值數(shù)學(xué)表達(dá)式: Dim VBExcel As Object Set VBExcel=CreateObject(”Excel.Application“)X=VBExcel.Evaluate(”3+5*(cos(1/log(99.9)))“)

      三、使用Excel應(yīng)用程序

      如前所述,在VB應(yīng)用程序中調(diào)用Excel應(yīng)用程序,就是使用Application對象的屬性、方法和事件。下面分類給出其中常用的屬性和方法。

      1、使用工作薄

      Workbook對象代表Excel應(yīng)用程序中當(dāng)前打開的一個工作簿,包含在Workbooks集合中。可以通過Workbooks集合或表示當(dāng)前活動工作簿的Active Workbook對象訪問Workbook對象。

      常用的方法有: 屬性、方法 意義

      Add方法 創(chuàng)建新的空白工作簿,并將其添加到集合中。Open方法 打開工作簿。

      Activate方法 激活工作簿,使指定工作簿變?yōu)榛顒庸ぷ鞑?,以便作為Active Workbook對象使用。Save方法 按當(dāng)前路徑和名稱保存現(xiàn)有工作簿(如是首次保存,則將其保存到缺省名稱中,如BOOK1.XLS)。SaveAs方法 首次保存工作簿或用另一名稱保存工作簿。Close方法 關(guān)閉工作簿。

      PrintOut方法 打印工作簿,語法為:

      PrintOut(from, To, Copies, Preview, Printer, ToFile, Collate)可選參數(shù):

      From:打印的起始頁號。如省略將從起始位置開始打印。

      To:打印的終止頁號。如省略將打印至最后一頁。

      Copies:要打印的份數(shù)。如省略將只打印一份。

      Preview:如果為True則Excel打印指定對象之前進(jìn)行打印預(yù)覽。如果為False,或省略則立即打印該對象。

      Printer:設(shè)置活動打印機的名稱。

      ToFile:如果為True則打印輸出到文件。

      Collate:如果為True則逐份打印每份副本。下面語句將活動工作簿的2到5頁打印3份:

      ActiveWorkbook.PrintOut From:=2 To 5 Copies:=3 示例2:生成、保存、關(guān)閉工作簿 Dim VBExcel As Excel.Application Set VBExcel== CreateObject(”Excel.Application“)With VBExcel.Workbooks.Add With ActiveWorkbook.Save As”C: Temp OUTPUT.XLS“.Close

      End With.Quit End With

      2、使用工作表

      Sheets集合表示工作簿中所有的工作表??梢酝ㄟ^Sheets集合來訪問、激活、增加、更名和刪除工作表。一個Worksheet對象代表一個工作表。

      常用的屬性、方法有: 屬性、方法 意義

      Worksheets屬性 返回Sheets集合。Name屬性 工作表更名。

      Add方法 創(chuàng)建新工作表并將其添加到工作簿中。Select方法 選擇工作表。Copy方法 復(fù)制工作表。

      Move方法 將指定工作表移到工作簿的另一位置。Delete方法 刪除指定工作表。PrintOut方法 打印工作表。

      示例3:將C盤工作簿中的工作表復(fù)制到A盤工作簿中: Dim VBExcel As Excel.Application Set VBExcel=CreateObject(”Excel.Application“)With VBExcel.Workbooks.Open ”C:TempOUTPUT.XLS“.Workbooks.Open”A:OUTPUT1.XLS“.Workbooks(”O(jiān)UTPUT.XLS“).Sheets(”Sales“).Copy.Workbooks(”O(jiān)UTPUT1.XLS).Workbooks(“OUTPUT1.XLS”).Save

      .Workbooks(“OUTPUT.XLS”).Close.Workbooks(“OUTPUTI.XLS”).Close.Quit End With

      3、使用單元范圍

      Range對象代表工作表的某一單元格、某一行、某一列、某一選定區(qū)域或者某一三維區(qū)域。常用的屬性、方法有: 屬性、方法 意義

      Range屬性 Range(arg)其中arg為A1--樣式符號,表示單個單元格或單元格區(qū)域。Cells屬性 Cells(row, col)(其中row為行號,col為列號)表示單個單元格。ColumnWidth屬性 指定區(qū)域中所有列的列寬。Rowl3eight屬性 指定區(qū)域中所有行的行寬。Value屬性 指定區(qū)域中所有單元格的值(缺省屬性)。Formula屬性 指定單元格的公式,由A1--樣式引用。Select方法 選擇范圍。

      Copy方法 將范圍的內(nèi)容復(fù)制到剪貼板。C1earContents方法 清除范圍的內(nèi)容。Delete方法 刪除指定單元范圍。

      4、使用圖表

      Chart對象代表工作簿中的圖表。該圖表既可為嵌人式圖表(包含于ChartObject對象中)也可為分立的圖表工作表。

      常用方法有: 方法 意義

      Add方法 新建圖表工作表。返回Chart對象。PrineOut方法 打印圖表。

      ChartWizard方法 修改給定圖表的屬性,其語法為:

      ChartWizard(Source, Gallery, Format, P1otBy, CategoryLabels, SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle)其中:

      Source:包含新圖表的源數(shù)據(jù)的區(qū)域。如省略,將修改活動圖表工作表或活動工作表中處于選定狀態(tài)的嵌人式圖表。

      Gallery:圖表類型。其值可為下列常量之一:xlArea, x1Bar, xlColumn, xlLine, x1Pie, xlRadar,x1XYScatter, xlCombination, x13DArea, x13DBar、x13DColumn, x13DLine, x13DPie、x13 DSurface、xlDoughnut或xlDefaultAutoFormat。

      Format:內(nèi)置自動套用格式的編號。如省略,將選擇默認(rèn)值。P1otBy:指定系列中的數(shù)據(jù)是來自行(xlRows)還是列(xlColumns)。CategoryLabels:表示包含分類標(biāo)志的源區(qū)域內(nèi)行數(shù)或列數(shù)的整數(shù)。SeriesLabels:表示包含系列標(biāo)志的源區(qū)域內(nèi)行數(shù)或列數(shù)的整數(shù)。HasLegend:若指定True,則圖表將具有圖例。Title:圖表標(biāo)題文字。

      CategoryTitle:分類軸標(biāo)題文字。ValueTitle:數(shù)值軸標(biāo)題文字。

      ExtraTitle:三維圖表的系列軸標(biāo)題,或二維圖表的第二數(shù)值軸標(biāo)題。

      可組合使用Add方法和ChartWizard方法,以創(chuàng)建包含工作表中數(shù)據(jù)的圖表工作表。下例基于工作表“Sheetl”中單元格區(qū)域“A1:A20”中的數(shù)據(jù)生成新的折線圖并打印。

      With Charts.Add.ChartWizard source:=Worksheets(“sheet1”).Range(“a1:a20”),gallery:=xlLine, title:=“折線圖表”

      .Printout End With

      5、使用Excel工作表函數(shù)

      在VB語句中可使用大部分的Excel工作表函數(shù),可通過WorksheetFunction對象調(diào)用Excel工作表函數(shù)。下面的Sub過程用Min工作表函數(shù)求出指定區(qū)域中單元格的最小值,并通過消息框顯示結(jié)果值。

      Sub UseFunction()Dim myRange As Range Set myRange=Worksheets(“Sheet1”).Range(“B2:F10”)answer=Application.WorksheetFunction.Min(myRange)MsgBox answer End Sub 如果使用以區(qū)域引用為參數(shù)的工作表函數(shù),必須指定一個Range對象。如可用Match工作表函數(shù)對A1:A10區(qū)域的所有單元格進(jìn)行搜索。

      Sub FindFirst()my Var=Application.WorksheetFunction.Match(9, Worksheets(1).Range(“A1:A10”),0)MsgBox myVar End Sub 要在單元格中插人工作表函數(shù),可將該函數(shù)指定為對應(yīng)于Range對象的Formula屬性值。在以下示例中,將當(dāng)前工作簿Sheetl內(nèi)A1:B3區(qū)域的Formula屬性指定為RAND工作表函數(shù)(此函數(shù)產(chǎn)生二個隨機數(shù))。

      Sub InsertFormula()Worksheets(“Sheet1”).Range(“A1:B3”).Formula=“RAND()” End Sub 以上簡要介紹了Excel對象模型中部分對象及其屬性和方法,更詳細(xì)的信息可參閱Excel 2000幫助中的“Microsoft Excel Visual Basic參考”一節(jié)的內(nèi)容。實際上,Microsoft Office家族的Word,PowerPoint, Access和Project等應(yīng)用程序都可以在VB應(yīng)用程序中調(diào)用,其原理和步驟完全相同,只是其對象模型有所不同而已。

      ----VB程序中直接調(diào)用Excel的格式如下:

      Private Sub menudy_Click(Index As Integer)這是一個打印菜單 Select Case Index Case 0 On Error GoTo kung aaa = Shell(“D:Program FilesMicrosoft OfficeOfficeEXCEL.EXE c:cnglcngl.xls“, 1)Case 1 On Error GoTo kong 作為空表處理 aaa = Shell(“D:Program FilesMicrosoft OfficeOfficeEXCEL.EXE c:cnglcngly.xls”, 1)Case 3 Case 4 Case 5 End Select Exit Sub kung: aaa = Shell(“EXCEL.EXE c:cnglcngl.xls“, 1)Exit Sub kong: aaa = Shell(“EXCEL.EXE c:cnglcngly.xls”, 1)End Sub----由于Word97和Excel97等高版本的Office組件都有和VB 的接口:VB 編輯器,所以我們可以直接利用 VB 編輯器編寫我們需要的程序。步驟如下:進(jìn)入Excel97后,用鼠標(biāo)點擊菜單欄中的“工具”按鈕,選擇“宏”,再選擇“VB 編輯器”。

      ----“VB編輯器”的編輯界面非常類似于“Visual Basic“的界面。我們可以從它的控件“工程資源管理器”中插入需要的“添加用戶窗體、添加模塊、添加類模塊”,并且從“屬性窗口”中加入屬性。

      ----例如,我們可以制定一個打印窗體,通過程序來實現(xiàn)數(shù)據(jù)定位和循環(huán)調(diào)用打印過程。Public panduan As Boolean Private Sub CommandButton1_Click()change If panduan Then Unload Me Else TextBox1.Text = “” End If End Sub Sub change()If Not judgeday(TextBox1.Text)Then GoTo error panduan = True Dim sql As String Dim db As Database Dim rs As Recordset sql = “SELECT * From 數(shù)據(jù)表“ sql = sql + “ WHERE(((數(shù)據(jù)表.日期)= #” + TextBox1.Text + “#))“ Setdb =OpenDatabase(Application.ThisWorkbook.Path +“cngl.mdb”)Set rs = db.OpenRecordset(sql, dbOpenDynaset)If rs.EOF Then

      MsgBox(“此日期無數(shù)據(jù)“)Exit Sub End If daima1 = rs.Fields(“代碼”)Sheet1.Range(“e5“).Value = rs.Fields(“日期”)Sheet1.Range(“f7“).Value = rs.Fields(“數(shù)據(jù)表記錄”)Sheet1.Range(“d13“).Value = rs.Fields(“整數(shù)100”)Sheet1.Range(“d15“).Value = rs.Fields(“整數(shù)50”)Sheet1.Range(“d17“).Value = rs.Fields(“整數(shù)10”)Sheet1.Range(“d19“).Value = rs.Fields(“整數(shù)5”)Sheet1.Range(“d21“).Value = rs.Fields(“整數(shù)2”)Sheet1.Range(“d23“).Value = rs.Fields(“整數(shù)1”)Sheet1.Range(“h13“).Value = rs.Fields(“其他100”)Sheet1.Range(“h15“).Value = rs.Fields(“其他50”)Sheet1.Range(“h17“).Value = rs.Fields(“其他10”)Sheet1.Range(“h19“).Value = rs.Fields(“其他5”)Sheet1.Range(“h21“).Value = rs.Fields(“其他2”)Sheet1.Range(“h23“).Value = rs.Fields(“其他1”)Sheet1.Range(“d37“).Value = Sheet1.Range(“d13”).Value * 100 + Sheet1.Range(“d15“).Value * 50 + Sheet1.Range(“d17”).Value * 10 + Sheet1.Range(“d19“).Value * 5 + Sheet1.Range(“d21”).Value * 2 + Sheet1.Range(“d23“).Value Sheet1.Range(“h37”).Value = Sheet1.Range(“h13“).Value * 100 + Sheet1.Range(“h15”).43

      Value * 50 + Sheet1.Range(“h17“).Value * 10 + Sheet1.Range(“h19”).Value * 5 + Sheet1.Range(“h21“).Value * 2 + Sheet1.Range(“h23”).Value Dim sql1 As String Dim db1 As Database Dim rs1 As Recordset sql1 = “SELECT * From 代碼字典“ sql1 = sql1 + “WHERE(((代碼字典.代碼)= ” & daima1 & “))“ Setdb1 =OpenDatabase(Application.ThisWorkbook.Path + “cngl.mdb”)Set rs1 = db1.OpenRecordset(sql1, dbOpenDynaset)Sheet1.Range(“h41“).Value = rs1.Fields(“代碼字典名稱”)Exit Sub error: MsgBox(“日期輸入錯誤“)panduan = False End Sub Private Sub TextBox1_Change()End Sub Private Sub UserForm_Activate()dyxjkc.Top = 30 dyxjkc.Left = 230 End Sub----具體的表格畫線可以由Excel自動完成,因此簡化了VB 編程的步驟,并且節(jié)約調(diào)試程序和畫線定

      位的時間。

      這兩天編了一個程序,基本功能是從自動站B文件(ACCESS數(shù)據(jù)庫文件)查詢當(dāng)月的日數(shù)據(jù)生成月簡表,調(diào)出數(shù)據(jù)很好實現(xiàn),程序的核心源碼是把這些數(shù)據(jù)寫入一個Excel模板中,這是我以前就想學(xué)會的一個功能,但沒有好好去找資料,為編這個程序在網(wǎng)上查找了一些資料,只用一小段代碼就實現(xiàn)了把數(shù)據(jù)寫入Excel模板中的功能,下面是基本源碼,后面附幾篇用VB控制的文章,希望對大家有益。(如果大家感興趣的話,我可以把那個從自動站中調(diào)用數(shù)據(jù)并形成日數(shù)據(jù)EXCEL文件的源碼發(fā)上來)

      Dim exl As New Excel.Application Dim book As New Excel.Workbook Dim sheet As New Excel.Worksheet '先使用excel制作一個模板

      Set book = exl.Workbooks.Open(”你制作的excel的路徑“)Set sheet = book.Worksheets(1)'在excel的格子中寫入你想打印的內(nèi)容 With sheet.Cells(Row, col)= ”“ End With sheet.PrintOut book.Close Set book = Nothing exl.Quit Set exl = Nothing 45

      Excel、Access、VB的結(jié)合應(yīng)用

      ----微軟公司的Office系列辦公軟件相信已是眾所周知,其中Excel強大的統(tǒng)計制表功能、Access功能完備的數(shù)據(jù)處理能力深受眾多用戶所喜愛。Visual Bsaic更是微軟公司又一有力的產(chǎn)品,它簡單易學(xué),在Windows編程中的應(yīng)用十分廣泛。本文通過介紹數(shù)據(jù)處理及復(fù)雜表格的打印,來討論VB與Excel及Access的結(jié)合運用。

      ----由于筆者所在的公司員工眾多,在進(jìn)行職工養(yǎng)老保險繳費的計算工作時,若使用勞動局編制的軟件(用Foxbase編寫),無論是在管理或維護(hù)方面均顯得力不從心。于是在公司領(lǐng)導(dǎo)的強烈要求下,決定由筆者構(gòu)思重新編制?;舅悸肥牵?.將所有員工資料輸入Access進(jìn)行處理,以便于維護(hù)。2.在Excel中預(yù)先制成有表頭的空表(Access相對欠缺處理復(fù)雜表格的能力),對需要進(jìn)行金額匯總或其他運算的單元格可直接輸入公式。3.在VB中編寫程序代碼,從Access中提取數(shù)據(jù)填入Excel對應(yīng)表格相應(yīng)的單元格,并輸出至打印機。

      ----部分窗體及源程序代碼如下:----1.程序主模塊

      ----定義Excel、Access對象變量,顯示系統(tǒng)啟動畫面,進(jìn)入系統(tǒng)主程序界面。強調(diào)一下,在編寫程序之前須加入對Excel及Access庫函數(shù)的引用,具體操作是:選擇菜單欄'工程''引用?',將'可使用的引用'列表框內(nèi)'Microsoft Access 8.0 Object Library'和 'Microsoft Excel 8.0 Object Library'兩項前的復(fù)選框標(biāo)為選中,按”確定“返回。

      mdsMain.bas '定義數(shù)據(jù)庫記錄集及Excel對象變量 Public ex As New Excel.Application Public exwbook As Excel.Workbook Public exsheet As Excel.Worksheet Public mydatabase As Database Public myrecordset1 As Recordset [定義記錄集]

      ?? ??

      Public Opt As Integer '報表選項 [Opt為frmSelreport.frm返回值] Public isYN As Boolean Sub Main()Load frmSplash frmSplash.Show frmSplash.Label2.Caption = ” 系統(tǒng)正在加載Access數(shù)據(jù)庫...“ Set mydatabase = OpenDatabase(”c:sbdasbda.mdb“)Set myrecordset1 = mydatabase.OpenRecordset(”報表打印(一)“)[此處對記錄集賦值] ?? ??

      frmSplash.Label2.Caption = ” 系統(tǒng)正在加載Excel電子表格...“ Set ex = CreateObject(”excel.application“)Set exwbook = ex.Workbooks.Open(”c:sbdasbda.xls“)Load FrmInput '將數(shù)據(jù)輸入窗體加載到內(nèi)存中 Unload frmSplash Load FrmMain'將主程序界面加載到內(nèi)存中 End Sub----2.報表打印模塊

      ----其中ExcelDoForVB1()是一子程序,由prnProess()調(diào)用,作用是從Access中提取所需數(shù)據(jù)資料,填入Excel對應(yīng)工作表(Worksheet)的相應(yīng)單元格(Cells)中,然后打印已填入數(shù)據(jù)的表格;prnProess()則負(fù)責(zé)實現(xiàn)對VB通用對話框(Commom Dialog)中打印功能的控制。

      mdlPrint.bas Option Explicit '定義循環(huán)計數(shù)變量

      Public nRow As Integer, nCol As Integer, nBtoE As Integer '定義變量接收打印對話框返回值 Public BeginPage, EndPage, NumCopies '程序運行時需進(jìn)行判斷的各種標(biāo)志 Public nflag, Flag, ifNum '數(shù)據(jù)記錄集中指針移動數(shù)

      Public PageN As Integer, n As Integer 'bar1為進(jìn)度條 Public bar1 As Object Sub prnProess()'控制通用對話框打印功能

      Set bar1 = FrmPrint.PgsBar1 '進(jìn)度條 On Error GoTo errhandle: If Flag = 0 Then '當(dāng)打印對話框中選”全部“時 Select Case Opt'選擇需要打印的表格 Case 1 nflag = 1 myrecordset1.MoveFirst

      myrecordset1.MovePrevious PageN = 1 Do While nflag = 1 Call ExcelDoForVB1 '數(shù)據(jù)填入Excel單元格打印 PageN = PageN + 1 Loop Case 2 ?? ?? End Select Else If Flag = 2 Then' 當(dāng)打印對話框中選”頁"時

      If EndPageBeginPage > 0 Then ifNum = 1 Else ifNum = 2 End If End If Select Case ifNum Case 2

      Exit Sub Case 0 Select Case Opt ' 選擇需要打印的表格 Case 1 myrecordset1.MoveFirst n =(BeginPage4 + 1)1)*(491 myrecordset1.Move n PageN = BeginPage

      下載EXCEL VBA工作表操作全能方法小結(jié)word格式文檔
      下載EXCEL VBA工作表操作全能方法小結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        新高考新操作工作小結(jié)

        2011屆新高考新操作工作小結(jié) 一、已完成的工作 1、 新高考改革的政策進(jìn)行廣泛、多種形式的宣傳,已深入學(xué)生、家長心中。 2、 高考網(wǎng)上報名工作已于12月順利完成。 3、 高考電......

        建立Excel 2000工作表及其操作教案

        教案主題:Excel 2000數(shù)據(jù)輸入及函數(shù)和公式的使用 系科:數(shù)學(xué)與計算機科學(xué)學(xué)院專業(yè)班級:計算機科學(xué)與技術(shù)六班姓名:朝陽學(xué)號:任課教師: 二〇〇八年五月二十一日 Excel 2000數(shù)據(jù)輸入......

        Oracle05表操作和約束(范文模版)

        一、 DDL數(shù)據(jù)定義語言 1. 創(chuàng)建表:create table 表名要求: 1.必須以字母開頭 2.必須在1-30個字符之間 3.必須只能包含A-Z,a-z,0-9,$,_,# 4.必須不能和用戶定義的其他對象重名 5......

        操作數(shù)據(jù)庫小結(jié)

        一.查詢操作 對數(shù)據(jù)進(jìn)行查詢操作時,有兩種情況:一是查詢單個值,二是 查詢?nèi)舾蓷l記錄。 1、 查詢單個值 需要使用Command對象的ExecuteScalar()方法:步驟如下: (1)、創(chuàng)建Connection對象......

        運行操作小結(jié)

        T-101隔油池 5格兩頭小中間大,格間水流做上下逐級流動。2個進(jìn)水口,分別在第1、3格,做了個超濾管到第三格一般情況下都是進(jìn)第一格。油主要集中在1、2格。1、來水帶油且較多; 2、......

        2009三季度操作小結(jié)

        2011年操作運動會總結(jié) 為迎接新公司成立以來第一屆操作運動會的召開,根據(jù)公司選拔工作安排,我車間做了相應(yīng)具體部署。首先,成立操作比武領(lǐng)導(dǎo)小組,召開職能人員會議宣傳,并通......

        初定專業(yè)技術(shù)資格表工作小結(jié)

        自2008年11月從事技術(shù)助理工作至今,在這段時間里,學(xué)到了很多以前書本中沒有接觸到的知識。工作以來,在單位領(lǐng)導(dǎo)及同事們的幫助下圓滿完成了各項工作,通過自身的不斷努力,無論是思......

        各種工作分析方法的優(yōu)缺點及適用范圍比較表

        各種工作分析方法的優(yōu)缺點及適用范圍比較表 1、 訪談法 優(yōu)點:簡單、有效;訪談的過程是一個雙向溝通的參與性;不僅能了解到工作本身的信息,還能了解工作者的工作態(tài)度與工作動機等......

          1. <ul id="fwlom"></ul>

            <object id="fwlom"></object>

            <span id="fwlom"></span><dfn id="fwlom"></dfn>

              <object id="fwlom"></object>