Option Explicit

' ▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽
' Excel对象
' △△△△△△△△△△△△△△△△△△ ' Open
Public Function FileOpen_ByExcel(ByVal FileName As String, ByRef Target As Workbook) As Boolean On Error GoTo OpenFileError Set Target = Workbooks.Open(FileName:=FileName, ReadOnly:=False)
FileOpen_ByExcel = True
Exit Function OpenFileError:
FileOpen_ByExcel = False End Function ' Save
Public Function FileSave_ByExcel(ByVal FileName As String, ByVal Target As Workbook) As Boolean On Error GoTo SaveFileError If FileName = "" Then
Target.Save
Else
Target.SaveAs FileName:=FileName
End If
FileSave_ByExcel = True
Exit Function SaveFileError:
FileSave_ByExcel = False End Function ' Close
Public Function FileClose_ByExcel(ByVal Target As Workbook) As Boolean On Error GoTo FileCloseError Target.Close savechanges:=False
FileClose_ByExcel = True
Exit Function FileCloseError:
FileClose_ByExcel = False End Function ' ▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽
' FileSystemObject
' △△△△△△△△△△△△△△△△△△ ' Folder
' CreateFolder
Public Function FolderCreate_ByFSO(ByVal FolderName As String, ByVal DeleteFlg As Boolean) As Boolean Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject") On Error GoTo FolderCreateError If FSO.FolderExists(FolderName) Then
If DeleteFlg Then
FSO.DeleteFolder (FolderName)
Else
Set FSO = Nothing
FolderCreate_ByFSO = True
Exit Function
End If
End If Dim ParentFolderName As String
ParentFolderName = FSO.GetParentFolderName(FolderName)
If FSO.FolderExists(ParentFolderName) = False Then
If FolderCreate_ByFSO(ParentFolderName, False) = False Then
GoTo FolderCreateError
End If
End If FSO.CreateFolder (FolderName)
Set FSO = Nothing
FolderCreate_ByFSO = True
Exit Function FolderCreateError:
Set FSO = Nothing
FolderCreate_ByFSO = False End Function ' CreateFile
Public Function FileCreate_ByFSO(ByVal FileName As String, ByVal DeleteFlg As Boolean) As Boolean Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject") On Error GoTo FileCreateError If FSO.FileExists(FileName) Then
If DeleteFlg Then
FSO.DeleteFile (FileName)
Else
Set FSO = Nothing
FileCreate_ByFSO = True
Exit Function
End If
End If Dim ParentFolderName As String
ParentFolderName = FSO.GetParentFolderName(FileName)
If FSO.FolderExists(ParentFolderName) = False Then
If FolderCreate_ByFSO(ParentFolderName, False) = False Then
GoTo FileCreateError
End If
End If FSO.CreateTextFile (FileName)
Set FSO = Nothing
FileCreate_ByFSO = True
Exit Function FileCreateError:
Set FSO = Nothing
FileCreate_ByFSO = False End Function
'
'' OpenTextFile
'Public Function OpenTextFile_ByFSO(ByVal FileName As String) As String
'
' Const ForReading As Integer = 1
' Const CreateFlgFalse As Boolean = False
'
' Dim FSO As Object, TextFile As Object, TextStr As String
' Set FSO = CreateObject("Scripting.FileSystemObject")
'
' On Error GoTo OpenTextFileError
'
' Set TextFile = FSO.OpenTextFile(FileName, ForReading, CreateFlgFalse)
' TextStr = TextFile.Readall
'
' TextFile.Close
' Set FSO = Nothing
'
' OpenTextFile_ByFSO = TextStr
' Exit Function
'
'OpenTextFileError:
'
' TextFile.Close
' Set FSO = Nothing
' OpenTextFile_ByFSO = ""
'
'End Function
'
'' OpenTextFile
'Public Function WriteTextFile_ByFSO(ByVal FileName As String, ByVal Buffer As String) As Boolean
'
' If FileCreate_ByFSO(FileName, True) = False Then
' WriteTextFile_ByFSO = False
' Exit Function
' End If
'
' Const ForWriting As Integer = 2
' Const CreateFlgTrue As Boolean = True
'
' Dim FSO As Object, TextFile As Object
' Set FSO = CreateObject("Scripting.FileSystemObject")
'
' On Error GoTo OpenTextFileError
'
' Set TextFile = FSO.OpenTextFile(FileName, ForWriting, CreateFlgTrue)
' TextFile.Write (Buffer)
'
' TextFile.Close
' Set FSO = Nothing
'
' WriteTextFile_ByFSO = True
' Exit Function
'
'OpenTextFileError:
'
' TextFile.Close
' Set FSO = Nothing
' WriteTextFile_ByFSO = False
'
'End Function Public Function OpenTextFile_ByADODBStream(FileName As String) As String
Dim FileBody As String Dim ADODBStream As Object
Set ADODBStream = CreateObject("ADODB.Stream") With ADODBStream
.Type =
.Mode =
.Open
.LoadFromFile FileName
.Position =
.Type =
.Charset = "utf-8"
FileBody = .ReadText
.Close
End With Set ADODBStream = Nothing OpenTextFile_ByADODBStream = FileBody End Function ' WriteTextFile_ByADODBStream
Public Function WriteTextFile_ByADODBStream(ByVal OutFileName As String, ByVal Buffer As String) As Boolean If FileCreate_ByFSO(OutFileName, True) = True Then Dim ADODBStream As Object
Set ADODBStream = CreateObject("ADODB.Stream") '
With ADODBStream
.Type =
.Charset = "utf-8"
.Open
.WriteText Buffer,
.SaveToFile OutFileName,
.Close
End With Set ADODBStream = Nothing
WriteTextFile_ByADODBStream = True
Else
WriteTextFile_ByADODBStream = False
End If End Function '
' log
'
Public Function WriteLog(ByVal LogFilePath As String, ByVal msg As String)
    Dim FSO As Object, LOG As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
   
    '
    If FSO.FileExists(LogFilePath) = False Then
        FSO.CreateTextFile (LogFilePath)
    End If
   
    '
    Set LOG = FSO.OpenTextFile(LogFilePath, 8)
    '
    LOG.WriteLine Now & vbTab & msg
   
    Set LOG = Nothing
    Set FSO = Nothing
End Function

VBA文件处理的更多相关文章

  1. vim之vba文件

    [vim之vba文件] Vimball 官方描述: The vimball plugin facilitates creating, extracting , and listing the cont ...

  2. VBA文件对话框的应用(VBA打开文件、VBA选择文件、VBA选择文件夹)

    在VBA中经常要用到文件对话框来进行打开文件.选择文件或选择文件夹的操作.用Microsoft Office提供的文件对话框比较方便.用法如下Application.FileDialog(fileDi ...

  3. VBA文件操作

    做这些东西主要是为了,实现,我们的最终目标. 查到 两个大表里面的变化数据. 所以 这次 ①实现了 文件操作的一部分内容. 包括,excel的打开.分四个步骤. 1.路径 2.打开工作博 3.操作 4 ...

  4. vba文件对比并高亮显示

    每月月底要和人事要离职人员名单,并账号列表里删除已经离职人员的账号,如下代码通过将账号列表与人事发来的离职清单进行对比,高亮找出离职人员的账号,并进行删除. Sub DeleteMain() Dim ...

  5. [转载]如何破解Excel VBA密码

    原文链接:http://yhf8377.blog.163.com/blog/static/1768601772012102111032840/ 在此之前,先强调一下,这个方法只是用来破解Excel内部 ...

  6. 将excel按照某一列拆分成多个文件(方案整理)

    1解决方案:将excel按照某一列拆分成多个文件 https://blog.csdn.net/ntotl/article/details/79141314 2遇到的问题:解决vbe6ext.olb不能 ...

  7. 如何破解Excel VBA密码

    首先,如果文件格式是(.xslm),需要先打开Excel文件,另存为2003版格式(.xls). 然后用普通的文本编辑器(我用的是NotePad++)打开这个文件,注意文件类型选“所有文件”. 然后在 ...

  8. Excel VBA(宏):添加宏

    写在前面: .编写宏,打开VBA,双击ThisWorkbook对当前工作薄进行编写宏:双击Sheet1,对整个sheet编写宏: 或者创建模块,在模块里,编写.调试代码. 打开VBA的方法见第一讲,结 ...

  9. VIM插件攻略

    工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...

随机推荐

  1. HDU-4418 Time travel 概率DP,高斯消元

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4418 题意:简单来说就是给你1个环(n - 1 , n - 2 …… 0 ,1 , 2 , 3 …… ...

  2. HDU-4618 Palindrome Sub-Array 暴力枚举

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4618 直接暴力枚举中心点,在中间如果求不出最大值直接跳过优化下... //STATUS:C++_AC_ ...

  3. UVA 10779 Collectors Problem(最大流)

    这个题是很难往网络流上面构思的... 从s向每个物品增加容量为Bob拥有数的弧,然后从每个物品向t增加容量为1的弧(代表种类个数).这时候跑最大流的话,得到的肯定是Bob拥有的初始种类数.那么交换后的 ...

  4. JVM之字节码——Class文件格式

    如同讲汇编必先讲计算机组成原理,在开始字节码之前,我们先了解一下JVM的主要构成. 在JVM的内部,主要由如下几个部分构成: 1.数据区 方法区:存放类定义信息.字节码.常量等数据,在Sun HotS ...

  5. 【C++深入浅出】设计模式学习之单例模式

    但凡成为大家公认的模式,都是有一些不可小觑的威力,今天分享一个简单的设计模式:单例模式. 单例模式用于一些只希望有一个实例的类或者只希望执行一次的操作:校长只能有一个.老板只能有一个.用户点击弹窗只希 ...

  6. Triangles

    1010: Triangles Time Limit: 2 Sec   Memory Limit: 128 MB Submit: 18   Solved: 8 Description You are ...

  7. 导出DC列表

    $DomainName = (gwmi win32_computersystem).Domain$dn0 = $DomainName.Split(".")[0]$dn1 = $Do ...

  8. js判断字符在另一个字符串中出现次数

    经过搜索验证,提供两个方法. 1. 通过分割获取长度原理 var s = 'www.51qdq.com';var n = (s.split('.')).length-1;alert(n);  //弹出 ...

  9. Eclipse 开发WEB项目所遇问题 WebContent WebRoot

    原文:http://blog.sina.com.cn/s/blog_525960510100jo0j.html 最近在做Web 项目时,新建了一个WEB 项目,如webdemo,eclipse默认的b ...

  10. #define和预编译指令

    今天再总结一点#define和预处理指令的使用. 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理. 预处理指令是以#开头的代码行,#后是 ...