VB学习1_vb基础知识和文件操作

前端之家收集整理的这篇文章主要介绍了VB学习1_vb基础知识和文件操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一:基本知识
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不可用

  1. Dimphoto_array(1To1000)AsString
  2. WithApplication.FileSearch
  3. .NewSearch
  4. .LookIn="c:/tupian"
  5. .SearchSubFolders=True
  6. .Filename="*.jpg"
  7. If.Execute()>0Then
  8. Forp=1To.FoundFiles.Count
  9. OnErrorResumeNext
  10. photo_array(p)=.FoundFiles(p)'获取图片路径,存放在数组中
  11. Nextp
  12. EndIf
  13. With

方法二,该方法可以用于excel2003和excel2007

copy

    PublicstrArr()String,rCountInteger'文件检索
  1. FunctionApp_SearchSubFolder(keywordBoolean)
  2. DimfdObject
  3. DimfsoObject
  4. Setfso=CreateObject("Scripting.FileSystemObject")
  5. '開啟Excel內建的資料夾瀏覽方塊
  6. Setfd=Application.FileDialog(msoFileDialogFolderPicker)
  7. Iffd.Show=-1Then
  8. rLookIn=fd.SelectedItems(1)
  9. Else
  10. MsgBox"未選取資料夾":ExitFunction
  11. rFilename=Dir$(rLookIn&"/"&keyword)
  12. rCount=0
  13. '建立動態陣列
  14. ReDimPreservestrArr(rCount)
  15. '第一階資料夾
  16. DoWhilerFilename<>vbNullString
  17. strArr(rCount)=rLookIn&"/"&rFilename
  18. rCount=rCount+1
  19. PreservestrArr(rCount)
  20. rFilename=Dir$()
  21. Loop
  22. IfrSearchSubFoldersThen'判斷是否搜尋子資料夾
  23. '搜尋第二階以後的子資料夾
  24. CallApp_NextSubFolder(fso.GetFolder(rLookIn),keyword)
  25. If
  26. Setfd=Nothing
  27. Setfso=Nothing
  28. Function
  29. PrivateSubApp_NextSubFolder(ByRefFolderObject,ByRefkeywordString)
  30. DimSubFolderForEachSubFolderInFolder.SubFolders
  31. rFilename=Dir$(SubFolder.Path&"/"&keyword)
  32. WhilerFilename<>vbNullString
  33. strArr(rCount)=SubFolder.Path&"/"&rFilename
  34. rCount=rCount+1
  35. rFilename=Dir$()
  36. Loop
  37. CallApp_NextSubFolder(SubFolder,keyword)
  38. Next
  39. Sub

四:读写指定编码文件

copy
    PublicFunctionSaveFile(FileNameVariant,strFileBodyVariant)Boolean
  1. DimADO_StreamSetADO_Stream=CreateObject("ADODB.Stream")
  2. WithADO_Stream
  3. .Type=2
  4. .Mode=3
  5. .Charset="utf-8"
  6. .Open
  7. .WriteTextstrFileBody
  8. .SaveToFileFileName,2
  9. With
  10. SaveFile=True
  11. SetADO_Stream=FunctionReadUTF8(ByValsUTF8FileString)String
  12. IfLen(sUTF8File)=0OrDir(sUTF8File)=vbNullStringThenDimadosSetados=CreateObject("adodb.stream")
  13. Withados
  14. .Charset="utf-8"
  15. .LoadFromFilesUTF8File
  16. ReadUTF8=.ReadText
  17. .Close
  18. With
  19. Setados=Function


五:vba中工作表相关

没有表则创建

copy

    SheetName="新工作表"
  1. DimxSetx=ActiveWorkbook.Sheets(SheetName)
  2. IfErr=0 SheetExists=Else
  3. False
  4. IfNotSheetExists Sheets.Add
  5. ActiveSheet.Name=SheetName
  6. If

原文来自:http://blog.csdn.net/weinianjie1/article/details/5977828

原文链接:https://www.f2er.com/vb/256304.html

猜你在找的VB相关文章