小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VB中操作Excel(創(chuàng)建EXCEL的OLE對(duì)象,前提,主機(jī)已安裝EXCEL)

 華燈初放l 2011-12-15
一、Excel對(duì)象模型

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



  二、調(diào)用Excel

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

  1、在VB工程中添加對(duì)Excel類型庫(kù)的引用

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

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

  b) 在“引用”對(duì)話框中選擇Excel類型庫(kù):"Microsoft Excel9.0 Object Library";

  c)單擊左邊小方框,使之出現(xiàn)“√”符號(hào);

  d)按“確定”退出。

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

  2、引用Application對(duì)象

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

Dim VBExcel As Object

  或直接聲明為Excel對(duì)象:

Dim VBExcel As Excel.Application

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

  a)用CreateObject函數(shù)生成新的對(duì)象引用:

Set VBExcel=CreateObject ("Excel.Application")

  字符串“Excel.Application”是提供Excel應(yīng)用程序的編程ID,這個(gè)變量引用Excel應(yīng)用程序本身。

  b)用GetO場(chǎng)ect函數(shù)打開已存在的對(duì)象引用:

Set AppExcel=GetObject("SAMP.XLS")

  上面語句打開文件SAMP.XLS。

  3、Application對(duì)象常用的屬性、方法

屬性、方法 方法
Visible屬性 取True或False,表明Excel應(yīng)用程序是否可見。
Left,Top屬性 Excel窗口的位置;
Height, Width屬性 Excel窗口的大?。?/TD>
WindowState屬性 指定窗口的狀態(tài),取:XIMaximized(最大化)X1 Minimized(最小化)x1 Normal(缺省)。
Quit方法 退出Microsoft Excel;
Calculate方法 重新計(jì)算所有打開的工作簿、工作表或單元格。
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對(duì)象的屬性、方法和事件。下面分類給出其中常用的屬性和方法。

  1、使用工作薄

  Workbook對(duì)象代表Excel應(yīng)用程序中當(dāng)前打開的一個(gè)工作簿,包含在Workbooks集合中??梢酝ㄟ^Workbooks集合或表示當(dāng)前活動(dòng)工作簿的Active Workbook對(duì)象訪問Workbook對(duì)象。

  常用的方法有:

屬性、方法 意義
Add方法 創(chuàng)建新的空白工作簿,并將其添加到集合中。
Open方法 打開工作簿。
Activate方法 激活工作簿,使指定工作簿變?yōu)榛顒?dòng)工作簿,以便作為Active Workbook對(duì)象使用。
Save方法 按當(dāng)前路徑和名稱保存現(xiàn)有工作簿(如是首次保存,則將其保存到缺省名稱中,如BOOK1.XLS)。
SaveAs方法 首次保存工作簿或用另一名稱保存工作簿。
Close方法 關(guān)閉工作簿。
PrintOut方法 打印工作簿,語法為:

PrintOut (from, To, Copies, Preview, Printer, ToFile, Collate)

  可選參數(shù):

 From:打印的起始頁(yè)號(hào)。如省略將從起始位置開始打印。
 To:打印的終止頁(yè)號(hào)。如省略將打印至最后一頁(yè)。
 Copies:要打印的份數(shù)。如省略將只打印一份。
 Preview:如果為True則Excel打印指定對(duì)象之前進(jìn)行打印預(yù)覽。如果為False,或省略則立即打印該對(duì)象。
 Printer:設(shè)置活動(dòng)打印機(jī)的名稱。
 ToFile:如果為True則打印輸出到文件。
 Collate:如果為True則逐份打印每份副本。

  下面語句將活動(dòng)工作簿的2到5頁(yè)打印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集合來訪問、激活、增加、更名和刪除工作表。一個(gè)Worksheet對(duì)象代表一個(gè)工作表。

  常用的屬性、方法有:

屬性、方法 意義
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:\Temp\OUTPUT.XLS"
 .Workbooks.Open"A:\OUTPUT1.XLS"
 .Workbooks("OUTPUT.XLS").Sheets ("Sales").Copy
 .Workbooks("OUTPUT1.XLS)
 .Workbooks("OUTPUT1.XLS").Save
 .Workbooks("OUTPUT.XLS").Close
 .Workbooks("OUTPUTI.XLS").Close
 .Quit
End With

  3、使用單元范圍

  Range對(duì)象代表工作表的某一單元格、某一行、某一列、某一選定區(qū)域或者某一三維區(qū)域。

  常用的屬性、方法有:

屬性、方法 意義
Range屬性 Range (arg)其中arg為A1--樣式符號(hào),表示單個(gè)單元格或單元格區(qū)域。
Cells屬性 Cells (row, col )(其中row為行號(hào),col為列號(hào))表示單個(gè)單元格。
ColumnWidth屬性 指定區(qū)域中所有列的列寬。
Rowl3eight屬性 指定區(qū)域中所有行的行寬。
Value屬性 指定區(qū)域中所有單元格的值(缺省屬性)。
Formula屬性 指定單元格的公式,由A1--樣式引用。
Select方法 選擇范圍。
Copy方法 將范圍的內(nèi)容復(fù)制到剪貼板。
C1earContents方法 清除范圍的內(nèi)容。
Delete方法 刪除指定單元范圍。

  4、使用圖表

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

  常用方法有:

方法

意義

Add方法 新建圖表工作表。返回Chart對(duì)象。
PrineOut方法 打印圖表。
ChartWizard方法 修改給定圖表的屬性,其語法為:
 
ChartWizard(Source, Gallery, Format, P1otBy, CategoryLabels,
SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle)

  其中:

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

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

  Format:內(nèi)置自動(dòng)套用格式的編號(hào)。如省略,將選擇默認(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對(duì)象調(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ù),必須指定一個(gè)Range對(duì)象。如可用Match工作表函數(shù)對(duì)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ù)指定為對(duì)應(yīng)于Range對(duì)象的Formula屬性值。在以下示例中,將當(dāng)前工作簿Sheetl內(nèi)A1:B3區(qū)域的Formula屬性指定為RAND工作表函數(shù)(此函數(shù)產(chǎn)生二個(gè)隨機(jī)數(shù))。

Sub InsertFormula()
Worksheets ("Sheet1" ).Range("A1:B3").Formula="RAND()"
End Sub

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多