亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Excel > 正文

Excel-VBA文件操作

2024-08-23 19:47:46
字體:
來源:轉載
供稿:網友

在我們日常使用Excel的時候,不僅會用到當前Excel文件的數據,還經常需要訪問其他的數據文件。這些數據文件可能是Excel文件、文本文件或數據庫文件等。經常有朋友會問如何在vba代碼里操作這些數據文件?本文就系統地介紹一下在Excel中應用VBA操作數據文件的方法。

本文主要介紹四種常用的方法:
1、利用Excel對象來處理文件;
2、利用VBA文件處理語句來處理文件;
3、利用FileSystemObject對象來處理文件;
4、利用API函數來處理文件。

當然對于數據庫文件,還可以利用ADO+SQL的方法操作,不過論壇已經有前輩詳細介紹過此類方法,本文就不再重復了。

一、利用Excel對象來處理文件

利用Excel對象自帶的方法來操作文件是最方便,也是最簡單的。
我們主要利用Workbooks集合和Workbook對象的方法來操作文件。

1、打開Excel文件

我們可以用Workbooks.Open方法打開一個Excel工作簿。
Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, PassWord, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
   其中FileName是必選的參數,表示要打開的工作簿名,如果沒有指定路徑,則代表當前路徑。另外14個是可選參數,除了密碼參數,其他的一般很少用。具體的含義可以參看VBA的幫助。
例:
    Workbooks.Open "F:/test.xls"
可以打開F盤的test.xls文件。

2、打開文本文件

   使用Open方法也可以打開文本文件,但建議使用OpenText方法。此方法是載入一個文本文件,并將其作為包含單個工作表的工作簿進行分列處理,然后在此工作表中放入經過分列處理的文本文件數據。完整語法如下:
Workbooks.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)

關于以上參數的具體含義可以參看VBA的幫助,這里就不重復了。在實際的編程中,一般無需對這些復雜的參數進行處理??梢酝ㄟ^錄制宏來得到打開一個文本文件的VBA代碼。具體方法就是選擇“文件——打開”,然后選擇打開文本文件,就會出現文本導入向導,一步一步執行完,直到文本打開后,停止錄制。
以下是錄制宏得到的代碼:
Sub Macro1()
'
' Macro1 Macro
' 宏由 MC SYSTEM 錄制,時間: 2007-3-29
'

'
     Workbooks.OpenText Filename:="F:/CallWindowPRoc.txt", Origin:=xlWindows, _
         StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
         ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
         , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
         TrailingMinusNumbers:=True
End Sub

在實際編程中只要做相應的修改就可以使用了。

3、打開其他文件

利用Excel對象還可以打開xml文件和一些數據庫(如access)文件,對應XML文件,需要Excel2003以上的版本。

OpenXML方法的語法如下:
Workbooks.OpenXML(Filename, Stylesheets, LoadOption)
FileName       String 類型,必需。要打開的文件名。

Stylesheets       Variant 類型,可選。單個值或值的數組,用于指定要應用哪些 XSL 轉換 (XSLT) 樣式表處理指令。

LoadOption     Variant 類型,轉換。指定 Excel 打開 XML 數據文件的方式??蔀?XlXmlLoadOption 常量之一。

XlXmlLoadOption 可為以下 XlXmlLoadOption 常量之一:
xlXmlLoadImportToList 將 XML 數據文件的內容置于 XML 列表中。
xlXmlLoadMapXml 在“XML 結構”任務窗格中顯示 XML 數據文件的架構。
xlXmlLoadOpenXml 打開 XML 數據文件。文件的內容將展開。
xlXmlLoadPromptUser 提示用戶選擇打開文件的方式。


示例
下面的代碼打開了 XML 數據文件“customers.xml”并在 XML 列表中顯示了此文件的內容。

Sub USEOpenXML()
     application.Workbooks.OpenXML _
         Filename:="customers.xml", _
         LoadOption:=xlXmlLoadImportToList
End Sub

OpenDatabase 方法語法如下:
Workbooks.OpenDatabase(FileName, CommandText, CommandType, BackgroundQuery, ImportDataAs)

FileName       String 類型,必需。連接字符串。

CommandText       Variant 類型,可選。查詢的命令文本。

CommandType       Variant 類型,可選。查詢的命令類型。以下是可用的命令類型:Default、SQL 和 Table。

BackgroundQuery       Variant 類型,可選。查詢的背景。

ImportDataAs       Variant 類型,可選。確定查詢的格式。

示例
本示例中,Excel 打開了“northwind.mdb”文件。

Sub OpenDatabase()

Workbooks.OpenDatabase FileName:="C:/northwind.mdb"

End Sub

4、保存文件

文件的保存使用Workbook對象的Save或SaveAs方法。
Save方法使用簡單,語法為
expression.Save,expression是某個Workbook對象。
如:ActiveWorkbook.Save
即保存當前活動工作簿。

如果是第一次保存工作簿或要另存為,請使用 SaveAs 方法為該文件指定文件名。
其語法為:
expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

具體參數含義可參看VBA幫助,使用都比較簡單。
示例
本示例新建一個工作簿,提示用戶輸入文件名,然后保存該工作簿。

Set NewBook = Workbooks.Add
Do
     fName = Application.GetSaveAsFilename
Loop Until fName <> False
NewBook.SaveAs Filename:=fName

Application.GetSaveAsFilename為調出標準的“另存為”對話框,獲取用戶文件名,但并不真正保存任何文件,然后使用代碼保存文件。還有Application.GetOpenFileName可以調出標準的“打開”對話框。

5、關閉文件

關閉文件可以使用Workbooks集合或Workbook對象的 Close 方法。前者是關閉所有打開的工作簿,后者關閉特定的工作簿。
Workbook對象的 Close 方法語法為:
expression.Close(SaveChanges, Filename, RouteWorkbook)

SaveChanges參數表示是否保存更改,對許多不需要更改的操作,可設置為False以免彈出保存更改提示的對話框。
FileName 可選。以此文件名保存所做的更改。
RouteWorkbook   可選。如果指定工作簿不需要傳送給下一個收件人(沒有傳送名單或已經傳送),則忽略該參數。

示例
本示例關閉 Book1.xls,并放棄所有對此工作簿的更改。

Workbooks("BOOK1.XLS").Close SaveChanges:=False
 
本示例關閉所有打開的工作簿。如果某個打開的工作簿有改變,Microsoft Excel 將顯示詢問是否保存更改的對話框和相應提示。

Workbooks.Close

6、綜合實例

假如F盤有一個Excel文件test.xls,現在有另一個Excel文件要訪問test.xls的數據,我們來看用VBA代碼如何操作。代碼如下:
Public Sub test()
Application.ScreenUpdating = False
Workbooks.Open "f:/test.xls"
ThisWorkbook.Sheets(1).Range("b1") = ActiveWorkbook.Sheets(1).Range("a2")
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub
首先關閉屏幕刷新,是為了防止test.xls在打開時被看見(有時候還是看的見)。打開后,見test.xls的Sheet1的單元格A2中的值賦給當前工作簿的Sheet1的單元格B2,然后關閉test.xls。
當要打開的工作簿不確定的時候,可以通過調用打開對話框來讓用戶自己選擇。
可改為如下:
Public Sub test()
Application.ScreenUpdating = False
Dim Filename as String
Filename = Application.GetOpenFileName
Workbooks.Open Filename
ThisWorkbook.Sheets(1).Range("b1") = ActiveWorkbook.Sheets(1).Range("a2")
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

7、總結

利用Excel對象的方法進行文件操作是最簡單,也是最方便的,適合初學者。對于Excel文件格式,如果我們僅僅是讀取其表格中的內容,這種方法也是首選。對于文本文件的操作,使用第二種方法比較方便,若要將文本轉換成表格,那么使用此方法也是合適的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级视频免费在线观看| 亚洲影院色无极综合| 欧美久久久精品| 欧美激情在线有限公司| 久久久久久久爱| 久久视频精品在线| 亚洲裸体xxxx| 日韩中文字幕精品视频| 91精品国产自产在线| 久久91精品国产91久久久| 久久手机精品视频| 在线观看中文字幕亚洲| 欧美日韩加勒比精品一区| 91精品视频免费| 国产z一区二区三区| 国产成人精品在线| 在线播放国产一区中文字幕剧情欧美| 国产a级全部精品| 久久九九有精品国产23| 欧美日韩另类视频| 亚洲男人7777| 亚洲一区二区三区乱码aⅴ蜜桃女| 日本精品一区二区三区在线播放视频| 国产拍精品一二三| 精品激情国产视频| 国产精品www| 97国产精品免费视频| 色老头一区二区三区在线观看| 亚洲精品中文字幕女同| 欧美在线一级va免费观看| 国产精品老牛影院在线观看| 亚洲日本成人网| 国产女同一区二区| 精品电影在线观看| 国产免费一区二区三区香蕉精| 国产精品视频久久| 亚洲成人久久久久| 色多多国产成人永久免费网站| 激情亚洲一区二区三区四区| 日韩一区视频在线| 日韩精品极品在线观看播放免费视频| 亚洲人成绝费网站色www| 在线国产精品视频| 国内精品久久久久| 国内伊人久久久久久网站视频| 91亚洲永久免费精品| 91精品国产自产91精品| 欧美一二三视频| 午夜精品久久久久久久99热浪潮| 日韩免费观看网站| 免费不卡欧美自拍视频| 国产精品海角社区在线观看| 国产精品看片资源| 亚洲人午夜精品免费| 91香蕉嫩草神马影院在线观看| 麻豆一区二区在线观看| 高清一区二区三区四区五区| 国模精品视频一区二区三区| 欧美午夜片在线免费观看| 日韩成人在线视频观看| 在线观看国产精品淫| 国产精品一区二区av影院萌芽| 国产精品久久久久久久7电影| 欧美激情xxxx性bbbb| 国产精品va在线| 免费91麻豆精品国产自产在线观看| 欧美在线视频在线播放完整版免费观看| 性色av一区二区三区免费| 亚洲精品美女久久久久| 午夜精品一区二区三区在线视| 亚洲精品av在线播放| 亚洲老头同性xxxxx| 国产精品美女www爽爽爽视频| 永久免费看mv网站入口亚洲| 国产经典一区二区| 久久久久久久一区二区| 欧美性xxxx极品高清hd直播| 久久久99免费视频| 精品国产欧美成人夜夜嗨| 国产精品久久久久久久av电影| 国产精品视频精品| 国模精品系列视频| 午夜精品一区二区三区在线视频| 国产日本欧美一区| 97精品一区二区三区| 91精品啪在线观看麻豆免费| 日韩欧美国产黄色| 久久久久久国产三级电影| 日韩免费黄色av| 国产午夜精品一区二区三区| 91精品国产综合久久香蕉最新版| 免费97视频在线精品国自产拍| 久久久久久久久综合| 色七七影院综合| 亚洲天堂av女优| 国产精品久久久| 狠狠色香婷婷久久亚洲精品| 亚洲女同性videos| 色在人av网站天堂精品| 精品久久久久久亚洲国产300| 欧美香蕉大胸在线视频观看| 91干在线观看| 国产一区二区三区精品久久久| 欧美日韩国产成人在线| 欧美性猛交xxxx乱大交蜜桃| 亚洲色图偷窥自拍| 久久久综合免费视频| 国产+成+人+亚洲欧洲| 国产精品久久久久久久久久ktv| 九九久久国产精品| 久久6免费高清热精品| 久久av中文字幕| 欧美性videos高清精品| 欧美另类69精品久久久久9999| 国产欧美日韩精品专区| 91视频国产高清| 成人综合网网址| 精品久久久久久| 精品视频—区二区三区免费| 亚洲视频日韩精品| 国产精品视频不卡| 日本国产精品视频| 不卡毛片在线看| 成人免费看黄网站| 国模精品视频一区二区三区| 亚洲精品一区二区在线| 日韩欧美精品在线观看| 亚洲精品在线91| 国产精品视频自在线| 国产热re99久久6国产精品| 国产精品91一区| 不卡伊人av在线播放| 久久香蕉频线观| 亚洲色图35p| 97成人在线视频| 日本久久91av| 国产精品美女久久| 欧美国产日韩中文字幕在线| 久久久精品视频成人| 992tv成人免费视频| 日本不卡高字幕在线2019| 亲爱的老师9免费观看全集电视剧| 最近2019年中文视频免费在线观看| 欧美性猛交xxxx黑人猛交| 亚洲的天堂在线中文字幕| 国产精品高潮在线| 国产精品第一视频| 国内精品视频久久| 国产美女精品视频免费观看| 久久人人爽人人爽人人片亚洲| www亚洲欧美| 亚洲最大成人免费视频| 欧美激情国产高清| 欧美成人激情视频| 日本一区二区在线免费播放| 成人国产精品久久久| 亚洲大尺度美女在线| 欧美在线视频免费| 日本老师69xxx| 亚洲第一网站男人都懂| 亚洲在线视频福利| 狠狠躁夜夜躁人人躁婷婷91| 成人精品网站在线观看| 97精品国产97久久久久久免费|