| 订阅 | 在线投稿
分享
 
 
 

Excel-VBA文件操作

2008-08-22 06:50:28 编辑來源:互联网 国际版 评论
 
 
本文为【Excel-VBA文件操作】的汉字拼音对照版显示拼音
  zaiwomenrichang使shiyongExceldeshihoubujinhuiyongdaodangqianExcelwenjiandeshujuhuanjingchangxuyao访fangwenqitadeshujuwenjianzhexieshujuwenjiankenengshiExcelwenjianwenbenwenjianhuoshujukuwenjiandengjingchangyoupengyouhuiwenruhezaivbadaimalicaozuozhexieshujuwenjianbenwenjiuxitongdijieshaoyixiazaiExcelzhongyingyongVBAcaozuoshujuwenjiandefangfa

  benwenzhuyaojieshaosizhongchangyongdefangfa

  1liyongExcelduixianglaichuliwenjian

  2liyongVBAwenjianchuliyujulaichuliwenjian

  3liyongFileSystemObjectduixianglaichuliwenjian

  4liyongAPIhanshulaichuliwenjian

  dangranduiyushujukuwenjianhuankeyiliyongADOSQLdefangfacaozuobuguoluntanyijingyouqianbeixiangxijieshaoguocileifangfabenwenjiubuzaichongfule

  yiliyongExcelduixianglaichuliwenjian

  liyongExcelduixiangzidaidefangfalaicaozuowenjianshizuifang便bianyeshizuijiandande

  womenzhuyaoliyongWorkbooksjiheheWorkbookduixiangdefangfalaicaozuowenjian

  1dakaiExcelwenjian

  womenkeyiyongWorkbooks.OpenfangfadakaiyigeExcelgongzuo簿bao

  Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

   qizhongFileNameshibixuandeshenshubiaoshiyaodakaidegongzuo簿baomingruguomeiyouzhidinglujingzedaibiaodangqianlujinglingwai14geshikexuanshenshuchulemimashenshuqitadeyibanhenshaoyongjutidehanyikeyishenkanVBAdebangzhu

  li

   Workbooks.Open "F:\test.xls"

  keyidakaiFpandetest.xlswenjian

  2dakaiwenbenwenjian

   使shiyongOpenfangfayekeyidakaiwenbenwenjiandanjianyi使shiyongOpenTextfangfacifangfashizairuyigewenbenwenjianbingjiangqizuoweibaohandangegongzuobiaodegongzuo簿baojinxingfenliechuliranhouzaicigongzuobiaozhongfangrujingguofenliechulidewenbenwenjianshujuwanzhengyufaruxia

  Workbooks.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)

  guanyuyishangshenshudejutihanyikeyishenkanVBAdebangzhuzhelijiubuchongfulezaishijidebianchengzhongyibanwuxuduizhexiefuduodeshenshujinxingchulikeyitongguoluzhihonglaidedaodakaiyigewenbenwenjiandeVBAdaimajutifangfajiushixuanzewenjiandakairanhouxuanzedakaiwenbenwenjianjiuhuichuxianwenbendaoruxiangdaoyibuyibuzhixingwanzhidaowenbendakaihoutingzhiluzhi

  yixiashiluzhihongdedaodedaima:

  Sub Macro1()

  '

  ' Macro1 Macro

  ' hongyou MC SYSTEM luzhishijian: 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

  zaishijibianchengzhongzhiyaozuoxiangyingdexiugaijiukeyi使shiyongle

  3dakaiqitawenjian

  liyongExcelduixianghuankeyidakaiXMLwenjianheyixieshujukuruAccesswenjianduiyingXMLwenjianxuyaoExcel2003yishangdebanben

  OpenXMLfangfadeyufaruxia

  Workbooks.OpenXML(Filename, Stylesheets, LoadOption)

  FileName String leixingbixuyaodakaidewenjianming

  Stylesheets Variant leixingkexuandangezhihuozhideshuzuyongyuzhidingyaoyingyongnaxie XSL zhuanhuan (XSLT) yangshibiaochulizhiling

  LoadOption Variant leixingzhuanhuanzhiding Excel dakai XML shujuwenjiandefangshikewei XlXmlLoadOption changliangzhiyi

  XlXmlLoadOption keweiyixia XlXmlLoadOption changliangzhiyi

  xlXmlLoadImportToList jiang XML shujuwenjiandeneirongzhiyu XML liebiaozhong

  xlXmlLoadMapXml zaiXML jiegourenwuchuanggezhongxianshi XML shujuwenjiandejiagou

  xlXmlLoadOpenXml dakai XML shujuwenjianwenjiandeneirongjiangzhankai

  xlXmlLoadPromptUser tishiyonghuxuanzedakaiwenjiandefangshi

  shili

  xiamiandedaimadakaile XML shujuwenjiancustomers.xmlbingzai XML liebiaozhongxianshileciwenjiandeneirong

  Sub UseOpenXML()

   Application.Workbooks.OpenXML _

   Filename:="customers.xml", _

   LoadOption:=xlXmlLoadImportToList

  End Sub

  OpenDatabase fangfayufaruxia

  Workbooks.OpenDatabase(FileName, CommandText, CommandType, BackgroundQuery, ImportDataAs)

  FileName String leixingbixulianjiezifuchuan

  CommandText Variant leixingkexuanchaxundeminglingwenben

  CommandType Variant leixingkexuanchaxundeminglingleixingyixiashikeyongdeminglingleixingDefaultSQL he Table

  BackgroundQuery Variant leixingkexuanchaxundebeijing

  ImportDataAs Variant leixingkexuanquedingchaxundegeshi

  shili

  benshilizhongExcel dakailenorthwind.mdbwenjian

  Sub OpenDatabase()

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

  End Sub

  4baocunwenjian

  wenjiandebaocun使shiyongWorkbookduixiangdeSavehuoSaveAsfangfa

  Savefangfa使shiyongjiandanyufawei

  expression.SaveexpressionshimougeWorkbookduixiang

  ruActiveWorkbook.Save

  jibaocundangqianhuodonggongzuo簿bao

  ruguoshidiyicibaocungongzuo簿baohuoyaolingcunweiqing使shiyong SaveAs fangfaweigaiwenjianzhidingwenjianming

  qiyufawei

  expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

  jutishenshuhanyikeshenkanVBAbangzhu使shiyongdoubijiaojiandan

  shili

  benshilixinjianyigegongzuo簿baotishiyonghushuruwenjianmingranhoubaocungaigongzuo簿bao

  Set NewBook = Workbooks.Add

  Do

   fName = Application.GetSaveAsFilename

  Loop Until fName <> False

  NewBook.SaveAs Filename:=fName

  Application.GetSaveAsFilenameweitiaochubiaozhundelingcunweiduihuakuanghuoquyonghuwenjianmingdanbingbuzhenzhengbaocunrenhewenjianranhou使shiyongdaimabaocunwenjianhuanyouApplication.GetOpenFileNamekeyitiaochubiaozhundedakaiduihuakuang

  5guanbiwenjian

  guanbiwenjiankeyi使shiyongWorkbooksjihehuoWorkbookduixiangde Close fangfaqianzheshiguanbisuoyoudakaidegongzuo簿baohouzheguanbitedingdegongzuo簿bao

  Workbookduixiangde Close fangfayufawei

  expression.Close(SaveChanges, Filename, RouteWorkbook)

  SaveChangesshenshubiaoshishifoubaocungenggaiduixuduobuxuyaogenggaidecaozuokeshezhiweiFalseyimiantanchubaocungenggaitishideduihuakuang

  FileName kexuanyiciwenjianmingbaocunsuozuodegenggai

  RouteWorkbook kexuanruguozhidinggongzuo簿baobuxuyaochuansonggeixiayigeshoujianrenmeiyouchuansongmingdanhuoyijingchuansongzehuluegaishenshu

  shili

  benshiliguanbi Book1.xlsbingfangqisuoyouduicigongzuo簿baodegenggai

  Workbooks("BOOK1.XLS").Close SaveChanges:=False

  

  benshiliguanbisuoyoudakaidegongzuo簿baoruguomougedakaidegongzuo簿baoyougaibianMicrosoft Excel jiangxianshixunwenshifoubaocungenggaideduihuakuanghexiangyingtishi

  Workbooks.Close

  6zongheshili

  jiaruFpanyouyigeExcelwenjiantest.xlsxianzaiyoulingyigeExcelwenjianyao访fangwentest.xlsdeshujuwomenlaikanyongVBAdaimaruhecaozuodaimaruxia

  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

  shouxianguanbipingmushuaxinshiweilefangzhitest.xlszaidakaishibeikanjian(youshihouhuanshikandejiandakaihoujiantest.xlsdeSheet1dedanyuangeA2zhongdezhifugeidangqiangongzuo簿baodeSheet1dedanyuangeB2ranhouguanbitest.xls

  dangyaodakaidegongzuo簿baobuquedingdeshihoukeyitongguotiaoyongdakaiduihuakuanglairangyonghuzijixuanze

  kegaiweiruxia

  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

  7zongjie

  liyongExcelduixiangdefangfajinxingwenjiancaozuoshizuijiandanyeshizuifang便biandeshihechuxuezheduiyuExcelwenjiangeshiruguowomenjinjinshiduquqibiaogezhongdeneirongzhezhongfangfayeshishouxuanduiyuwenbenwenjiandecaozuo使shiyongdierzhongfangfabijiaofang便bianruoyaojiangwenbenzhuanhuanchengbiaogename使shiyongcifangfayeshiheshide原文
 
 
在我们日常使用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文件格式,如果我们仅仅是读取其表格中的内容,这种方法也是首选。对于文本文件的操作,使用第二种方法比较方便,若要将文本转换成表格,那么使用此方法也是合适的。
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

网络安全治理:国家安全保障的主要方向是打击犯罪,而不是处置和惩罚受害者

来源:中国青年报 新的攻击方法不断涌现,黑客几乎永远占据网络攻击的上风,我们不可能通过技术手段杜绝网络攻击。国家安全保障的主要方向是打击犯罪,而不是处置和惩罚...

 
 
 
>>返回首页<<
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
纯美的她_仔婷
苏州河畔_秀气女生
痞子的甘南日记
疑是银河落九天
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有