一:基本知识 1,变量首字母大写,常量全部大写 2,switch(<表达式1>,条件为1时的值,【……】) 3,动态数组,Dim 数组名() As Integer ReDim [Preserve] 数组名(*to*,*to*) As Integer,Preserve关键字可以保证数组大小改变时,值还存在 4,使用ubound保证不会越界 5,Dim A As Variant(Dim A()) A = Array(10,20,30)
二:文件操作 1,open 文件名 For [output,input,append] As #文件号 2,output或append方式时,使用print #文件号,[输出列表] 3,output或append方式时,使用write #文件号,[输出列表]------这种方式,输出列表间自动用逗号隔开,字符串自动加双引号 4,output或append方式时,输出列表后面要加上分号,否则自动换行 5,output或append方式可以自动实现文件不存在则创建,很方便 6,使用output方式时,文件已经被清空,即使不写内容,当关闭文件的时候也是清空的 7,使用input方式时,Do While Not EOF(1) Line input #文件号,变量名 Loop 8,curdir(),dir(目录或者文件名,当目录时,使用第二参数vbDirectory<>"",vbcrlf,MKDIR 9,name path_name1 as path_name2 移动文件
10,返回当前工作薄的路径ThisWorkbook.Path
三:文件搜索
方法一,该方法可以用于excel2003,excel2007不可用
- Dimphoto_array(1To1000)AsString
- WithApplication.FileSearch
- .NewSearch
- .LookIn="c:/tupian"
- .SearchSubFolders=True
- .Filename="*.jpg"
- If.Execute()>0Then
- Forp=1To.FoundFiles.Count
- OnErrorResumeNext
- photo_array(p)=.FoundFiles(p)
- Nextp
- EndIf
- With
方法二,该方法可以用于excel2003和excel2007
copy
PublicstrArr()String,rCountInteger
- FunctionApp_SearchSubFolder(keywordBoolean)
- DimfdObject
- DimfsoObject
- Setfso=CreateObject("Scripting.FileSystemObject")
-
- Setfd=Application.FileDialog(msoFileDialogFolderPicker)
- Iffd.Show=-1Then
- rLookIn=fd.SelectedItems(1)
- Else
- MsgBox"未選取資料夾":ExitFunction
- rFilename=Dir$(rLookIn&"/"&keyword)
- rCount=0
-
- ReDimPreservestrArr(rCount)
- '第一階資料夾
- DoWhilerFilename<>vbNullString
- strArr(rCount)=rLookIn&"/"&rFilename
- rCount=rCount+1
- PreservestrArr(rCount)
- rFilename=Dir$()
- Loop
- IfrSearchSubFoldersThen
- '搜尋第二階以後的子資料夾
- CallApp_NextSubFolder(fso.GetFolder(rLookIn),keyword)
- If
- Setfd=Nothing
- Setfso=Nothing
- Function
- PrivateSubApp_NextSubFolder(ByRefFolderObject,ByRefkeywordString)
- DimSubFolderForEachSubFolderInFolder.SubFolders
- rFilename=Dir$(SubFolder.Path&"/"&keyword)
- WhilerFilename<>vbNullString
- strArr(rCount)=SubFolder.Path&"/"&rFilename
- rCount=rCount+1
- rFilename=Dir$()
- Loop
- CallApp_NextSubFolder(SubFolder,keyword)
- Next
- Sub
四:读写指定编码文件
PublicFunctionSaveFile(FileNameVariant,strFileBodyVariant)Boolean
- DimADO_StreamSetADO_Stream=CreateObject("ADODB.Stream")
-
- WithADO_Stream
- .Type=2
- .Mode=3
- .Charset="utf-8"
- .Open
- .WriteTextstrFileBody
- .SaveToFileFileName,2
- With
-
- SaveFile=True
- SetADO_Stream=FunctionReadUTF8(ByValsUTF8FileString)String
- IfLen(sUTF8File)=0OrDir(sUTF8File)=vbNullStringThenDimadosSetados=CreateObject("adodb.stream")
- Withados
- .Charset="utf-8"
- .LoadFromFilesUTF8File
- ReadUTF8=.ReadText
- .Close
- With
- Setados=Function
五:vba中工作表相关
没有表则创建
copy
SheetName="新工作表"
- DimxSetx=ActiveWorkbook.Sheets(SheetName)
- IfErr=0 SheetExists=Else
- False
- IfNotSheetExists Sheets.Add
- ActiveSheet.Name=SheetName
- If
原文来自:http://blog.csdn.net/weinianjie1/article/details/5977828 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|