一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

VBA常用代碼解析(第八講)

 wdmexcel 2015-08-21

正文開(kāi)始前,先插播一條廣告DimArr As Variant

Dimi As Integer

DimmyNewWorkbook As Integer

myNewWorkbook= Application.SheetsInNewWorkbook

ShName= Array('余額','單價(jià)''數(shù)量','金額')

Arr= Array('01''02','03''04','05''06','07''08','09''10','11''12')

Application.SheetsInNewWorkbook= 4

SetNowbook = Workbooks.Add

WithNowbook

For i = 1 To 4

With .Sheets(i)

.Name = ShName(i - 1)

.Range('B1').Resize(1,UBound(Arr) 1) = Arr

.Range('A2') = '品名'

End With

Next

.SaveAs Filename:=ThisWorkbook.Path &'\' & '存貨明細(xì).xls'

.Close Savechanges:=True

EndWith

SetNowbook = Nothing

Application.SheetsInNewWorkbook= myNewWorkbook

End Sub

代碼解析:

AddNowbook過(guò)程使用Add方法建立新的工作簿并對(duì)新建工作簿進(jìn)行操作。

2行到第6行代碼聲明變量類(lèi)型。

7行代碼保存Excel自動(dòng)插入到新工作簿中的工作表數(shù)目。

8、9行代碼將數(shù)組元素賦值給變量。

10行代碼將Application對(duì)象的SheetsInNewWorkbook屬性設(shè)置為4,在新建工作簿時(shí)插入4張工作表。

11行代碼使用Add方法建立新的工作簿,應(yīng)用于Workbooks對(duì)象的Add方法新建工作簿,新建的工作簿將成為活動(dòng)工作簿。

12行到第22行代碼操作新建工作簿。其中第15行到第17行代碼將新建工作簿的工作表進(jìn)行重命名并給單元格賦值。第20行代碼使用SaveAs方法將新建工作簿重命名為“存貨明細(xì).xls”保存在同一目錄中。第21行代碼使用Close方法關(guān)閉工作簿。

24行代碼恢復(fù)工作簿的默認(rèn)設(shè)置。

運(yùn)行AddNowbook過(guò)程將在工作簿同一目錄中新建“存貨明細(xì).xls”工作簿,新建工作簿格式。

注意本例中沒(méi)有考慮工作簿同名因素,如果目錄中已有“存貨明細(xì).xls”工作簿,運(yùn)行時(shí)會(huì)顯示對(duì)話框,選擇“是”即可,否則將會(huì)出錯(cuò)。

042 打開(kāi)指定的工作簿

VBA中使用Open方法打開(kāi)一個(gè)工作簿,如下面的代碼所示。

Sub Openfile()

Dimx As Integer

Forx = 1 To Workbooks.Count

If Workbooks(x).Name = '123.xls'Then

MsgBox ““'123”“工作簿已經(jīng)打開(kāi)!'

Exit Sub

End If

Next

Workbooks.OpenThisWorkbook.Path & '\123.xls'

End Sub

代碼解析:

Openfile過(guò)程打開(kāi)同一目錄中的“123工作簿。

3行代碼利用Workbook對(duì)象的Count屬性取得打開(kāi)工作簿的數(shù)目,使用For...Next 語(yǔ)句遍歷所有打開(kāi)的工作簿。遍歷工作簿除了使用For...Next 語(yǔ)句外還可以使用For...Each...Next語(yǔ)句來(lái)遍歷Workbook對(duì)象集合中的所有元素,請(qǐng)參閱▲46-1。

4行到第8行代碼遍歷所有打開(kāi)的工作簿,如果Workbook對(duì)象集合中存在“123”工作簿,說(shuō)明“123”工作簿已打開(kāi)。

9行代碼如果“123”工作簿沒(méi)有被打開(kāi)則使用Open方法打開(kāi)“123”工作簿。

Open方法應(yīng)用于Workbooks 對(duì)象時(shí)打開(kāi)一個(gè)工作簿,語(yǔ)法如下:

expression.Open(FileName,UpdateLinks,ReadOnlyFormat,PasswordWriteResPassword,IgnoreReadOnlyRecommendedOrigin,DelimiterEditable,NotifyConverter,AddToMruLocal,CorruptLoad)

參數(shù)expression是必需的,返回一個(gè)Workbooks對(duì)象

參數(shù)FileName是必需的,要打開(kāi)的工作簿的文件名。

參數(shù)UpdateLinks是可選的,指定文件中鏈接的更新方式。如果省略本參數(shù),則提示用戶選擇鏈接的更新方式。否則,該參數(shù)的取值應(yīng)為表格中的某個(gè)值。

參數(shù)ReadOnly是可選的,如果該值為True,則以只讀模式打開(kāi)工作簿。

參數(shù)Format是可選的,如果MicrosoftExcel正在打開(kāi)一個(gè)文本文件,則該參數(shù)用于指定分隔字符,如表格所示。如果省略本參數(shù),則使用當(dāng)前的分隔符。

參數(shù)Password是可選的,該字符串指定打開(kāi)一個(gè)受保護(hù)工作簿的密碼。如果省略該參數(shù)并且指定工作簿已設(shè)置密碼,則提示用戶輸入密碼。

參數(shù)WriteResPassword是可選的,該字符串為一個(gè)寫(xiě)保護(hù)工作簿的寫(xiě)入權(quán)密碼。如果省略該參數(shù)并且指定工作簿已設(shè)置密碼,則提示用戶輸入密碼。

參數(shù)IgnoreReadOnlyRecommended是可選的,如果該值為True,則設(shè)置Microsoft Excel不顯示建議只讀消息(如果該工作簿以“建議只讀”選項(xiàng)保存)。

參數(shù)Origin是可選的,如果文件為文本文件,則該參數(shù)用于指示該文件來(lái)源于何種操作系統(tǒng)。

參數(shù)Delimiter是可選的,如果該文件為文本文件并且Format參數(shù)為 6,則此參數(shù)用于指定用作分隔符的字符。

參數(shù)Editable是可選的,如果該文件為MicrosoftExcel 4.0加載宏,則該參數(shù)的值為True時(shí)可打開(kāi)該加載宏以便在窗口中看到。如果該參數(shù)的值為False或者省略該參數(shù),則該加載宏以隱藏方式打開(kāi),并且無(wú)法設(shè)為可見(jiàn)。

參數(shù)Notify是可選的,當(dāng)該文件不能以可讀寫(xiě)模式打開(kāi)時(shí),如果該參數(shù)的值為True,則可將該文件添加到文件通知列表。

參數(shù)Converter是可選的,打開(kāi)文件時(shí)試用的第一個(gè)文件轉(zhuǎn)換器的索引號(hào)。

參數(shù)AddToMru是可選的,如果該值為True,則將該工作簿添加到最近使用的文件列表中。默認(rèn)值為False

參數(shù)Local是可選的,如果該值為True,則以Microsoft Excel(包括控制面版設(shè)置)的語(yǔ)言保存文件。如果該值為False(默認(rèn)值),則以 VisualBasic for Applications (VBA)的語(yǔ)言保存文件,其中VisualBasic for Applications (VBA)為典型安裝的美國(guó)英語(yǔ)版本,除非VBA項(xiàng)目的Workbooks.Open來(lái)自舊的國(guó)際化的XL5/95 VBA項(xiàng)目。

參數(shù)CorruptLoad是可選的,可為以下常量之一:xlNormalLoadxlRepairFile xlExtractData。如果未指定任何值,則默認(rèn)值通常為普通狀態(tài)。

043 判斷指定工作簿是否打開(kāi)

043-1 遍歷Workbooks集合方法

通過(guò)遍歷當(dāng)前應(yīng)用程序所有已打開(kāi)的工作簿文件(Workbooks集合),判斷指定名稱(chēng)的工作簿是否打開(kāi),如下面的代碼所示。

Sub WorkbookIsOpen_1()

DimWb As Workbook

DimmyWb As String

myWb= 'Excel Home.xls'

ForEach Wb In Workbooks

If Wb.Name = myWb Then

MsgBox '工作簿' & myWb & '已經(jīng)被打開(kāi)!'

Exit Sub

End If

Next

MsgBox'工作簿' & myWb & '沒(méi)有被打開(kāi)!'

End Sub

代碼解析:

WorkbookIsOpen_1過(guò)程通過(guò)遍歷當(dāng)前應(yīng)用程序中所有已打開(kāi)的工作簿文件(Workbooks集合),判斷“Excel Home”工作簿是否打開(kāi)。

5行代碼使用For...Each...Next語(yǔ)句來(lái)遍歷Workbook對(duì)象集合中的所有元素。

6行到第8行代碼如果Workbook對(duì)象集合包含“Excel Home.xls”工作簿名稱(chēng),說(shuō)明文件已打開(kāi),使用Exit Sub語(yǔ)句結(jié)束代碼的運(yùn)行。

11行代碼如果運(yùn)行到此行代碼說(shuō)明“Excel Home.xls”工作簿沒(méi)有被打開(kāi)。

043-2 錯(cuò)誤處理方法

使用錯(cuò)誤處理程序判斷指定名稱(chēng)的工作簿是否打開(kāi),如下面的代碼所示。

Sub WorkbookIsOpen_2()

DimWb As Workbook

DimmyWb As String

myWb= 'Excel Home.xls'

Err.Clear

On ErrorGoTo line

SetWb = Application.Workbooks(myWb)

MsgBox'工作簿' & myWb & '已經(jīng)被打開(kāi)!'

SetWb = Nothing

ExitSub

line:

MsgBox'工作簿' & myWb & '沒(méi)有被打開(kāi)!'

SetWb = Nothing

End Sub

代碼解析:

WorkbookIsOpen_2過(guò)程使用錯(cuò)誤處理程序判斷“Excel Home”工作簿是否打開(kāi)。

5行代碼使用Clear方法清除Err對(duì)象的所有屬性設(shè)置。

6行代啟動(dòng)錯(cuò)誤處理程序,如果第7行代碼發(fā)生錯(cuò)誤則執(zhí)行line行后面的代碼。

7行代碼使用Set語(yǔ)句將Workbook對(duì)象引用賦給變量Wb,如果Excel Home.xls”工作簿沒(méi)有被打開(kāi)將發(fā)生下標(biāo)越界錯(cuò)誤,此時(shí)執(zhí)行第12、13行代碼,否則執(zhí)行第89行代碼。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(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)論公約

    類(lèi)似文章 更多

    国产一级内射麻豆91| 大香伊蕉欧美一区二区三区| 国产亚洲精品俞拍视频福利区| 亚洲中文字幕视频一区二区| 亚洲精品伦理熟女国产一区二区| 日本深夜福利在线播放| 亚洲天堂精品一区二区| 欧美亚洲综合另类色妞| 午夜精品成年人免费视频| 色婷婷视频免费在线观看| 国产精品一区二区香蕉视频| 日本欧美三级中文字幕| 少妇成人精品一区二区| 亚洲欧美日韩国产综合在线| 91国内视频一区二区三区| 永久福利盒子日韩日韩| 国产在线一区二区免费| 国产人妻精品区一区二区三区| 91老熟妇嗷嗷叫太91| 少妇福利视频一区二区| 熟妇久久人妻中文字幕| 国产成人综合亚洲欧美日韩| av在线免费播放一区二区| 99久热只有精品视频最新| 十八禁日本一区二区三区| 视频一区日韩经典中文字幕| 亚洲妇女作爱一区二区三区| 日韩国产精品激情一区| 中国美女偷拍福利视频| 午夜激情视频一区二区| 久热人妻中文字幕一区二区| 国产精品一区二区不卡中文| 91福利视频日本免费看看| 久久re6热在线视频| 午夜视频成人在线免费| 亚洲国产一区精品一区二区三区色| 熟女白浆精品一区二区| 经典欧美熟女激情综合网| 精品欧美日韩一区二区三区| 91人妻人人揉人人澡人| 亚洲最新中文字幕在线视频|