For Append As:

Open "1.txt" For Append As #1
Open "1.txt"就是打开名为1.txt的文件
For Append就是追加的意思,也就是在原有文件内容的后面增加新的内容
As #1是把打开的文件标识为一个句柄#1,用于后面的代码对这个文件进读写行操作,

比如print #1, "1234"

打开word文档:

Sub test()
    Dim DocApp As Object
    Set DocApp = CreateObject("Word.Application")
    DocApp.Visible = True
    DocApp.Documents.Open Filename:="D:\abc\123.doc"
End Sub

遍历目标文件下所有指定文件(包括子文件夹):

Dim MyName, Dic, Did, i, T, F, TT, MyFileName
    T = Time
    Set Dic = CreateObject("Scripting.Dictionary")
    Set Did = CreateObject("Scripting.Dictionary")
    Dic.Add ("C:\Users\AA\BB\CC\"), ""
    i = 0
    Do While i < Dic.count
        Ke = Dic.keys
        MyName = Dir(Ke(i), vbDirectory)
        Do While MyName <> ""
            If MyName <> "." And MyName <> ".." Then
                If (GetAttr(Ke(i) & MyName) And vbDirectory) = vbDirectory Then
                    Dic.Add (Ke(i) & MyName & "\"), ""
                End If
            End If
            MyName = Dir
        Loop
        i = i + 1
    Loop
    For Each Ke In Dic.keys
        MyFileName = Dir(Ke & "*.odt")
        Do While MyFileName <> ""
            Did.Add (Ke & MyFileName), ""
            MyFileName = Dir
        Loop
    Next
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name = "XXX" Then
            Sheets("XXX").Cells.Delete
            F = True
            Exit For
        Else
            F = False
        End If
    Next
    If Not F Then
        Sheets.Add.Name = "XXX"
    End If
    Sheets("XXX").[a1].Resize(Did.count, 1) = WorksheetFunction.Transpose(Did.keys)

通过excel vba 操作word页眉:

Sub replace_odt(replaceParam As String, odtPath As Variant)
    'replace xxx.doc/odt with data collected from input_format_update.xlsx
    Dim Wdapp, Wd
    Application.ScreenUpdating = False
    Set Wdapp = CreateObject("word.application")
    Set Wd = Wdapp.Documents.Open(odtPath)
    Wdapp.Visible = False
  
    Wdapp.Selection.Find.ClearFormatting
        Wdapp.Selection.Find.replacement.ClearFormatting
        With Wdapp.Selection.Find
                .Text = replaceParam 'need to be replaced
                .replacement.Text = "[NAME]" ' want to replace with
                .Forward = True
                .Wrap = 1
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchByte = True
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
        End With
        Wdapp.Selection.Find.Execute replace:=2
   
    Wd.SaveAs odtPath
    Wd.Close
    Wdapp.Quit
   
    Set Wd = Nothing
    Set Wdapp = Nothing
    Application.ScreenUpdating = True
End Sub
 
上面操作word的时候相当于通过以下代码创造一个word vba 环境
(word vba 代码前面加 wdapp.)
Set Wdapp = CreateObject("word.application")
    Set Wd = Wdapp.Documents.Open(odtPath)
    Wdapp.Visible = False
  
    Wdapp.Selection.Find.ClearFormatting
        Wdapp.Selection.Find.replacement.ClearFormatting
        With Wdapp.Selection.Find
 
on error:
 
On Error Resume Next:
写在最前面,如果sub中出现异常/错误,程序会继续执行,不会停
On Error GoTo ErrorFlag:
与下面代码一起食用,在喜欢的地方放置,如果出现异常/错误,就会触发XXX
ErrorFlag:
  XXX(定义好的function)
Exit Sub
 
 
清空sheet:
Worksheets("XXX").UsedRange.ClearContents
 
在某处生成文件:
Sub test()
              任意格式文件都可以
    Open "C:\Users\-----------------\a.docx" For Output As #1
Print #1, "test"
Close #1
End Sub
 

effective VBA的更多相关文章

  1. Effective前端2:优化html标签

    div { float: left; } .keyboard > div + div { margin-left: 8px; } --> div{display:table-cell;ve ...

  2. Effective java笔记(二),所有对象的通用方法

    Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...

  3. 《Effective java》-----读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...

  4. 《Effective Java》学习笔记——积累和激励

    从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...

  5. Effective前端5:减少前端代码耦合

    什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天.由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: ...

  6. Effective前端4:尽可能地使用伪元素

    伪元素是一个好东西,但是很多人都没怎么用,因为他们觉得伪元素太诡异了.其实使用伪元素有很多好处,最大的好处是它可以简化页面的html标签,同时用起来也很方便,善于使用伪元素可以让你的页面更加地简洁优雅 ...

  7. Effective前端3:用CSS画一个三角形

    p { text-indent: 2em } .triangle-container p { text-indent: 0 } img { margin: 15px 0 } 三角形的场景很常见,打开一 ...

  8. Effective前端1:能使用html/css解决的问题就不要使用JS

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...

  9. VBA 格式化字符串 - Format大全

    VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...

随机推荐

  1. WPF 定义Lookless控件的默认样式、 OnApplyTemplate 如何使用(实现方式、如何工作的)!

    写的非常详细: 作者地址:https://www.cnblogs.com/atskyline/archive/2012/11/16/2773806.html 参考资料: http://www.code ...

  2. CE修改器使用教程 [基础篇]

    Cheat Engine  是一款内存修改编辑工具 ,它允许你修改你的游戏或软件内存数据,以得到一些其他功能.它包括16进制编辑,反汇编程序,内存查找工具.与同类修改工具相比,它具有强大的反汇编功能, ...

  3. c setjmp longjmp

    http://coolshell.cn/?s=setjmp http://www.cnblogs.com/hazir/p/c_setjmp_longjmp.html double divide(dou ...

  4. per学习笔记-zkclient,curator使用

    开源客户端,原生api的不足 连接的创建是异步的,需要开发人员自行编码实现等待 连接没有自动的超时重连机制 Zk本身没提供序列化机制,需要开发人员自行指定,从而实现数据的序列化和反序列化 Watche ...

  5. VS2017新建视图中文乱码解决办法

    问题:VS2017 ASP.NET Core 新建视频默认为ASNI编码格式 解决办法 1:直接将视图页面通过记事本打开,然后另存为UTF-8解决. 2:安装扩展TextTools解决视图文件编码问题 ...

  6. ubuntu下wps无法使用搜狗输入法输入中文

    sudo vim /usr/bin/et sudo vim /usr/bin/wps sudo vim /usr/bin/wpp 以上三个文件,都加入如下内容后重新打开文档即可 export XMOD ...

  7. Swift5 语言指南(二十) 类型转换

    类型转换是一种检查实例类型的方法,或者将该实例视为与其自己的类层次结构中的其他位置不同的超类或子类. Swift中的类型转换是使用is和as运算符实现的.这两个运算符提供了一种简单而富有表现力的方法来 ...

  8. for,while陈述

    今天我们来说一下for 和while循环 Python循环语句的控制结构图如下所示: for 是Python程序员使用最多的语句,for 循环用于迭代容器对象中的元素,这些对象可以是列表.元组.字典. ...

  9. 机器学习基石笔记:16 Three Learning Principles

    三个理论上界: 三个线性模型: 三个关键工具: 三条学习规则: 1.奥卡姆剃刀定律 先从简单模型开始, 训练后出现欠拟合, 再尝试复杂点模型. 2.采样误差 训练.验证.测试数据尽量同分布. 3.数据 ...

  10. 【sping揭秘】6、IOC容器之统一资源加载策略

    Spring中的resource 我们先看看类之间的关系 注意我们的application是间接继承了resourceloader的,也就是说我们的application其实就是一个resourcel ...