精华内容
下载资源
问答
  • excel VBA程序开发

    2018-12-19 10:22:04
    excel VBA程序开发,简单的说, Excel VBA 是依附于 Excel 程序的一种自动化语言, 它可以使常用的程序自动化, 类似于 DOS(磁盘操作系统)中的批处理文件(后缀名“.bat”)。那么它有什么具体的功能?在 工作中与...
  • EXCEL用API方式实现,这种方式比直接用其他方式实现的优势是可以并行控制。但是需要在模块及窗体之间共同使用代码。使用方式先打开后使用开发方式运行。
  • 摘 要:微软Office中的VBA编程功能可以将办公操作自动化。由于现代翻译中绝大多数原文和译文都用办公软件呈现,而且现代翻译中译前和译后的编辑工作基本上都可以在office软件中完成,因此VBA编程可以将翻译实践中的...

    摘  要:微软Office中的VBA编程功能可以将办公操作自动化。由于现代翻译中绝大多数原文和译文都用办公软件呈现,而且现代翻译中译前和译后的编辑工作基本上都可以在office软件中完成,因此VBA编程可以将翻译实践中的许多操作自动化,从而提高翻译效率。本文首先介绍了VBA编程在翻译中应用的可能性及VBA编程的一些特点,然后通过一些实例来证明VBA编程在原文和译文等译前和译后文档编辑活动中有重要的作用,希望能够促进VBA编程在翻译中的应用研究。

    关键词:VBA;编程;翻译;

    一、        引言

    VBA是微软公司开发的面向办公软件的一种编程语言。这种编程语言可以将许多微软办公软件中的操作自动化,从而节省用户大量的时间和精力(Mansfield,2010:xxvii,3;2008:xxvii,3)。利用VBA可以将一些简单重复性的工作编写为程序代码,从而通过运行代码自动完成办公任务,提高文字处理、数字统计和信息管理等办公效率。现代翻译大多数以办公软件特别是Word的形式呈现,因此利用VBA编程可以提高翻译效率并保证翻译质量,特别是译前和译后的原文与译文编辑、修订的效率和质量。本文以翻译中的几个实例说明VBA编程在翻译中的应用,希望今后有更多人参与到相关研究中。

    二、        VBA编程在翻译应用研究

    由于VBA编程在办公自动化过程中有重要的作用,对其在各个领域的应用研究也非常广泛。根据知网上面以“VBA的应用”为检索词所得到的结果,VBA编程在其他各个领域应用的研究非常普遍,但是在翻译方面的应用却搜不到任何文献。造成这种现象的主要原因是国内大多数翻译实践和翻译理论研究者出身于外语专业,而以外语这种文科专业为背景的学者多少都有一点“技术恐惧症”:对技术性的问题不敢尝试。而大多数计算机基础类的课程又很少涉及办公软件中的高级用法,造成大多数翻译实践人员对微软办公中的许多高级应用知识知之甚少。正如有学者指出的,“80%的Word用户,其实只知道它20%的功能”(徐彬,2017)。许多人甚至根本不知道微软办公软件还有编程功能。

    文字处理是翻译实践中最重要的工作内容,在现代翻译中,绝大多数的原文和译文都是以办公软件特别是微软Word的形式呈现。VBA可以扩充办公软件的功能,使文字处理等办公操作自动化,因此在翻译原文和译文的编辑、修订过程中也应该有重要作用。虽然上文说在知网上搜不到VBA编程与翻译之间关系的文献,但这并不是说没有人知道VBA编程在翻译中的重要作用。例如,徐彬就多次提到了录制宏(其实就是VBA编程最基本的部分)在处理译文标点符号(2007:80)、术语收集整理(2010:47;2017:97)、隐藏奇数段落以获得原文与译文逐段对照的格式(2017:97)中的作用,以及在其他方面的应用(2014:108)。王华树也在其主编的翻译技术教材中将“宏编程基础与文本处理”作为翻译技术课程体系构建中计算机基础部分的一项内容。此外,王华树(2013)也多次在其研究中提到了Java和Python等计算机语言在翻译中的作用。因此,计算机编程应该成为计算机辅助翻译能力的一部分,而并不是可有可无的技术。

    作为办公软件的一部分,VBA编程与办公软件操作密切相关,比其他独立编程语言更容易学习和掌握。翻译实践人员可以在学会VBA编程的基础上将自己反复使用的操作进行编程,从而实现操作的自动化,节省时间和精力,而将更多的时间投入到翻译过程中译文理解和语言转换等创造性的工作上。

    必须指出,虽然上文提到录制宏也可以完成一些重复性的操作,但是录制宏的功能非常有限。翻译实践人员想要通过VBA编程解决翻译中的实际问题,最好还是要学会自己编写VBA代码。原因主要有以下四点。

    第一,不是所有的办公软件都有宏录制功能。在微软系列办公软件中,只有Word、Excel和PowerPoint提供了录制宏的功能,而其他office软件并没有这个功能。特别是Access这个数据库软件在开发基于数据的程序方面具有非常重要的作用,但是却无法通过录制宏生成宏程序代码,自动完成各种操作。

    第二,宏录制不能将两种以上软件结合起来使用。微软的各个办公软件都有自己的优势,如Word利于编辑处理文字,Excel利于处理表格和数字信息,PowerPoint利于演示,Access利于各种数据处理。一般来说,用户在办公时很少能够同时使用两个以上办公软件。即使需要使用也需要另外打开一种程序文件,如译者可以查找存储在Excel中的英汉术语表并且将相关术语插入到Word文件中,就需要同时打开Word和Excel文件,通过在两个不同类型的文档之间复制粘贴来完成任务。然而在VBA编程中,各个不同软件之间可以相互调用。这样就可以用一种办公软件同时操作两个以上的软件,从而将各个不同软件之间的功能结合起来使用。

    第三,并不是所有的办公操作都能通过录制宏来完成。宏录制只是将用户的某些操作通过VBA代码记录了下来,而这些代码通常会受到录制宏时所处理的文件对象本身的限制。例如,如果一个文档只有六个段落,而用户通过录制宏将这六个段落依次复制到了另一个文件中,以后启动录制的程序代码就只能复制六个段落,如果一个文档段落超过了六个,后面的段落就无法复制。

    第四,即使有些操作可以用宏录制,而且以后启动后完全可以满足用户的操作要求,也会产生冗余代码。例如,以下两个代码块的执行都可以将所选文字设置为隐藏字体,由于第一个是通过录制宏产生的代码块,而第二个是编写的代码块,结果代码长度差别很大。因为在第一个代码块中除了两个语句是有效语句以外,其他语句代码都是冗余代码。这样的代码如果不删除虽然并不会影响自动完成操作任务,但是代码过长却会拖慢程序运行速度,从而影响操作效率,而且代码过长也会影响以后对程序的维护和修改。

    WithSelection.Font

        .Hidden = True  '有效语句

        .SmallCaps = False

        .AllCaps = False

        .Color = wdColorBlue  '有效语句

        .Engrave = False

        .Superscript = False

        .Subscript = False

        .Spacing = 0

        .Scaling = 100

        .Position = 0

        .Kerning = 1

        .Animation = wdAnimationNone

        .DisableCharacterSpaceGrid = False

        .EmphasisMark = wdEmphasisMarkNone

        .Ligatures = wdLigaturesNone

        .NumberSpacing = wdNumberSpacingDefault

        .NumberForm = wdNumberFormDefault

        .StylisticSet = wdStylisticSetDefault

        .ContextualAlternates = 0

    End With

    录制宏产生的代码

    WithSelection.Font

        .Hidden = True

        .Color = wdColorBlue

    End With

    编写的代码

    三、        VBA编程与计算机辅助翻译软件的共同设计原则

    计算机辅助翻译技术“利用计算机模拟人脑记忆功能的机制,把翻译过程中简单、重复性的记忆活动交给计算机来做,将译者从机械性的工作中解放出来,全力关注翻译活动本身”(王华树,2017)。目前所有的计算机辅助软件的设计都是基于这条原则。VBA编程也是基于相似的原则,它可以让用户将办公过程中一些常见的重复性工作通过VBA代码编写为程序,然后通过运行程序而自动完成同样的操作。由于VBA和计算机辅助翻译软件有相似的设计原则,并且VBA编程主要处理的是各种办公操作,所以VBA应该成为现代翻译技术的一个组成部分,用来处理翻译过程中的各种文档操作。例如,在汉英翻译中,译文单词之间可能有一些多余的空格,通常可以用Word的查找和替换功能并结合Word通配符来将多个空格替换为一个空格。具体做法是使用查找和替换对话框中的“使用通配符”,在查找框中输入一个空格和{2,},在替换框中输入一个空格,然后点“全部替换”就可以清除全部的多余空格。在一般人看来,这个操作已经非常方便快捷。实际上这个操作因为反复使用可以编写为程序,以后就可以通过运行程序来自动完成,而不必每次都调用查找和替换对话框,并且在查找和替换框中输入查找和替换项。而且还可以将这个程序通过命令按钮加载到常用工具栏中并且为程序设置一个快捷键,以后需要时直接点击这个命令按钮或按快捷键就可以直接完成操作。

    四、        VBA编程的特点

    利用各种编程语言将日常生活和工作中的操作自动化已经非常普遍。为了满足各种不同编程的需要,现在也出现了各种不同的编程语言,如Perl、Python等。由于VBA与办公软件相结合,而翻译实践主要用的是各种办公软件,所以对于翻译实践中的各种操作而言,VBA有以下的特点和优势。

    (一)操作便捷

       微软VBA所编写的程序可以指定为常用工具栏的命令按钮,或指定快捷组合键,或通过给文件中添加命令按钮来运行,甚至还可以指定程序自动运行,因此使用起来非常方便快捷。对于一些个人常用的程序,可以存为文件模板,并且用命令按钮的形式加载在常用工具栏中,以后使用时像点击其他命令按钮一样来完成相应的操作。图1中最右侧的三列三行命令按钮就是将一些常用操作编写为VBA小程序,并以命令按钮的形式加载到了Word工具栏中。这样就可以点击Word命令按钮一样就可以完成所需要的操作。

    42b31853-091c-eb11-8da9-e4434bdf6706.png

    图1 加载为工具按钮的VBA小程序 

    同时,有些稍微复杂一点的小程序,由于代码较长,可以单独保存为启用宏的Word文档(后缀名为.docm),并且给文档中添加一个程序启动按钮,并且将程序的操作说明直接写到文档中。为了保证程序的安全性和不被误改,可以使用Word的限制编辑功能。这样的文档以后再次使用时,只要打开文档,点击启动按钮就可以自动运行。不仅操作方便,而且还可以像一个小软件一样与团队成员或朋友相互分享。图2就是这样一个启动了宏程序的Word文档的部分截图。

    4bb31853-091c-eb11-8da9-e4434bdf6706.png

    图2 添加了启动按钮和操作说明的启动宏的Word文档

    (二)简单易学

    与其他大多数编程语言相比,VBA编程简单易学,容易上手。首先,用户不必学习和掌握许多与编程相关的知识。因为VBA内置于微软应用软件中,所以利用VBA编写程序不需要专门的集成开发环境,也就不需要学习开发环境软件。大多数程序开发者除了要掌握一门计算机编程语言之外,还需要学习和掌握操作系统知识、数据库知识和计算机网络知识。而利用VBA编程,程序编写人员只要掌握了VBA语言并且熟悉微软办公软件的各种操作就可以编写一些简单实用的程序。其次,由于VBA语言中所涉及的各种对象、属性、方法和事件都对应于应用软件中的各种不同操作,因此编写的代码也相对容易理解和掌握,而且VBA的帮助文件提供了非常详细的查询,学习者可以通过查找帮助文件,较快掌握VBA中各种对象、属性、方法和事件的编码。再次,VBA编辑器提供了自动插入功能,自动显示各个对象所涉及的属性、方法、数据类型,以及各种常量,用户只需根据自己的编程需要进行选择,更容易学习。最后,通过上文所提到的微软办公软件提供的宏录制功能,初学者可以较快理解各种代码的含义。因此,即使不熟悉算法的初学者也可以通过录制宏查看程序代码,从而熟悉各种算法和程序编码。

    (三)灵活定制

    VBA虽然基于微软办公软件,但是它能够满足不同目的的编程需求。可以根据用户的需要编写简单实用的代码完成实现小的办公操作的自动化,同时也可以通过调用其他办公软件的VBA编程实现复杂任务的自动化操作。因为不同的用户用办公软件来完成不同的任务,所以不同的用户可以根据自己的需要编写不同的代码,实现不同操作的自动化。对于翻译来说,从译前原文文档的处理到译后译文的编辑都可以使用VBA编程实现翻译编辑过程某些操作的自动化。此外,VBA编程也可以用于翻译术语管理之中。

    五、        VBA编程在翻译应用中实例

    以翻译技术为基础的翻译流程包括译前、译中和译后三个过程。VBA编程主要出现在译前的原文文本编辑和译后的译文文本加工,其次也可以应用于翻译术语管理方面(李海亭,2019)。以下就用几个实例说明VBA编程在翻译中的具体应用。这些例子中的代码一般都比较简单,基本上都适合添加到工具栏中,随时处理文档。

    (一)显示或不显示隐藏文字

    校对是翻译过程中非常重要的环节。在校对过程中,有时候需要对照原文,以确定译文的意义是否与原文一致,这时候可以将原文和译文排列为段落对照的格式,也就是所有奇数段落都是原文,而所有的偶数段落都是译文。这样可以随时对照原文,检查译文意义表达是否准确。但有时在译文与原文意义一致的情况下,却只需要对译文的行文进行润色。这时候呈现原文反而会造成不便。其实,完全可以使用Word隐藏文字的功能并利用显示或不显示隐藏文字满足两种不同的需要。具体方法是将原文和译文排成段落对照的格式,并且将原文设置为隐藏文字的格式(这个过程也可以用宏程序完成,见下文)。然后可以编两个不同的宏程序,一个显示隐藏字体,一个不显示隐藏文字(两个程序的代码如下),并且将两个宏加载到常用工具栏中,设置为按钮。在需要显示原文时,点击显示隐藏字体的按钮,原文自动出现。而在不需要显示原文时,点击不显示隐藏文字的按钮,原文自动隐藏,而只显示译文。

    Sub 不显示隐藏文字()

        ActiveWindow.View.ShowAll= False

        ActiveWindow.View.ShowHiddenText= False

    End Sub

    Sub 显示隐藏文字()

        ActiveWindow.View.ShowAll= True

        ActiveWindow.View.ShowHiddenText= True

    End Sub

    (二)隐藏原文奇数段落

    Trados、Déjà vu和memoQ都可以忽略原文中隐藏的文字,利用这个特点,可以将原文中每一个段落都复制,变成AABBCC的形式,然后将奇数段落隐藏,这样导入CAT软件,翻译完成后,导出来的译文就成为原文和译文段落对照的格式。用表格和文本互换的操作可以完成这一任务,而且也可以将这个操作录制成宏,以便以后自动完成各种操作(徐彬,2017)。其实这种利用表格和文本相互转换的操作完成的任务也可以通过编写程序代码来自动完成,而且编写的代码要比宏录制产生的代码更加简洁,从而更容易理解和维护。图1和图2分别就是编写的代码和录制宏的代码实现自动隐藏奇数段落的部分代码。以下是这个程序的全部代码。

    Sub复制原文段落并隐藏奇数段落()

        Dialogs(wdDialogFileOpen).Show  '打开文件选择窗口

        Dim Doc As Document             '定义新文档

        Set Doc = ActiveDocument        '为新文档赋值

        Dim Total As Integer            '定义整形变量作为总行数

        Total = Doc.Paragraphs.Count    '为总行数赋值

        Dim DocName1 As String          '定义整形变量作为活动文档名称

        Dim DocPath As String           '获取活动文档路径

        DocPath = Doc.Path              '为活动文档路径赋值

        Selection.WholeStory            '选择整篇文档内容

        '将文档转换成表格

    Selection.ConvertToTableSeparator:=wdSeparateByParagraphs,           NumColumns:=1, _

    NumRows:=Total,AutoFitBehavior:=wdAutoFitFixed

        With Selection.Tables(1)

            .ApplyStyleHeadingRows = True

            .ApplyStyleLastRow = False

            .ApplyStyleFirstColumn = True

            .ApplyStyleLastColumn = False

        End With

    Doc.Tables(1).Columns(1).Select'选择表1中的第一列

    Selection.Copy         '复制第一列内容

    Selection.InsertColumnsRight   '在所选第一列后面插入新列

    Selection.PasteAndFormat(wdPasteDefault)'粘贴所选第一列并格式化

    Doc.Tables(1).Columns(1).Select'选择表1中的第一列

        With Selection.Font'对所选列字体进行设置

            .Hidden = True

            .Color = wdColorBlue

        End With

    Doc.Tables(1).Select'选择表1

        '将所选表格转换为文档

    Selection.Rows.ConvertToTextSeparator:=wdSeparateByParagraphs, _

    NestedTables:=False

    DocName = Left(Doc.Name,InStrRev(Doc.Name, ".") - 1) '截取源文档的文件名

    Doc.SaveAs2 FileName:=DocPath&"\" &DocName& "段段对照"  '另存新文档为源文档的路径并重新命名

    Doc.CloseSavechanges:=wdSaveChanges'关闭文档并保存修改

    End Sub

    (三)切分长文档

    在翻译活动中,经常会遇到一些长文档,如长达数百页的一本书。这样的翻译工作通常需要好几位译者合作完成。此时就需要翻译项目管理人员将长文档切分成多个短文档,然后分配给不同的译者。即使是一位译者独立在CAT软件中翻译这样的长文档,也应该将其按照章节切分成多个不同的文档,否则在原文导入和译文导出时,由于文件整体太大而导致导入、导出和打开过程太长,从而耗费大量时间。此外,长文档在翻译过程中如果出现任何错误可能会导致整个译文无法导出,给译文译后编辑带来不便,而切分后的各个短文档即使出现问题,也只影响局部而不会影响全部。在长文档的切分中,可以利用Word大纲视图中创建子文档功能完成(徐彬,2017)。当然也可以使用VBA编写一个小程序来自动完成。以下代码就是通过录制宏产生的按照一级标题切分长文档的程序代码。可以按照不同的章节要求先设定好一级标题,然后直接运行该程序或点击添加到菜单栏中对应的按钮就可以直接将一篇长文档切分为好多个短文档。

    Sub 切分文档()

        ActiveWindow.ActivePane.View.Type= wdOutlineView

        Selection.WholeStory

        If ActiveWindow.View =wdMasterView Then

            ActiveWindow.View =wdOutlineView

        Else

            ActiveWindow.View =wdMasterView

        End If

     ActiveDocument.Subdocuments.AddFromRangeRange:=Selection.Range

    ActiveWindow.Close

    End Sub

    (四)去掉多余空格

    在汉译英中,译文中一般要求在两个单词中间有一个空格,而在单词与标点符号之间不要空格。但一般会因为输入失误而在两个单词之间产生两个以上的空格或者在单词与后面的标点符号之间加上空格。通常在译文校对过程中应该去掉这些多余的空格。如果用人工校对和修改,不仅费时费力,还会因为各种原因而未能全部修改。这种简单的劳动其实也可以通过VBA编码来交给计算机自动完成。以下就是通过录制并编辑宏代码产生的去除英文多余空格的程序代码。

    Sub 去除多余空格()

        Selection.Find.ClearFormatting

        Selection.Find.Replacement.ClearFormatting

        With Selection.Find

            .Text = "{1,}([\,\.\?\!^13\(\)'""])"

            .Replacement.Text = "\1"

            .Forward = True

            .Wrap = wdFindContinue

            .MatchWildcards = True

        End With

        Selection.Find.ExecuteReplace:=wdReplaceAll

        With Selection.Find

            .Text = " {2,}"

            .Replacement.Text = " "

            .Forward = True

            .Wrap = wdFindContinue

            .MatchWildcards = True

        End With

    Selection.Find.ExecuteReplace:=wdReplaceAll

    End Sub

    (五)去掉所有书签

    在翻译实践中,经常会遇到利用OCR技术将PDF文件(特别是PDF图像)转换成Word格式,然后再导入CAT软件翻译的情形。例如,用FineReade将PDF文件转换为Word,然而有时PDF文档转换成Word后会出现大量的书签。这种书签一般用Word查找替换对话框中的定位功能一个一个删除,这样做费时费力,其实可以用以下四行代码编写的小程序一次全部删除,当然最好将这样的宏程序附加到常用菜单栏中,每次使用时只要点击一次就可以瞬间完成删除。

    Sub 删除所有书签()

    Dim MyBkAs Bookmark

    For EachMyBkInActiveDocument.Bookmarks

    MyBk.Delete

    Next

    End Sub

    以上几个小程序都是使用WordVBA编写的,这些Word VBA程序也是翻译中对原文和译文进行编辑最常使用的程序。

    六、        结语

    本文论述了VBA编程在翻译实践中的应用,并以几个实例说明了VBA编程在原文和译文编辑及术语管理中的作用。实际上VBA编程在翻译中的应用远不止这些。作为办公软件的一个扩展功能,VBA有极强的灵活性和适应性。将微软办公软件中的Word、Excel、PowerPoint及Access等各种功能通过VBA编程相互结合起来,会在翻译中有无限的应用前景。希望今后有更多学者在这一方面有所研究。

    参考文献

    李海亭. Office VBA编程设计两款翻译术语工具[J].电子技术与软件工程, 2019(07):230-232.

    王华树. 翻译技术教程[M]. 上海:商务印书馆, 2017.

    王华树. 翻译专业硕士(MTI)翻译技术教学研究:问题与对策[J]. 外语电化教学, 2018(06):76-82.

    王华树. 语言服务行业技术视域下的MTI技术课程体系构建[J]. 中国翻译, 2013, 34(06):23-28.

    徐彬. 计算机辅助翻译教学——设计与实施[J]. 上海翻译, 2010(04):45-49.

    徐彬. 翻译技术教学新思考[J]. 北京航空航天大学学报(社会科学版), 2014, 27(06):107-111.

    徐彬, 郭红梅, 国晓立. 21世纪的计算机辅助翻译工具[J]. 山东外语教学, 2007(04):79-86.

    徐彬, 郭红梅. 翻译技术教学新谈[J]. 当代外语研究, 2017(05):96-101.

    徐彬, 谭莹. 计算机辅助下的翻译协作[J]. 山东外语教学, 2008(04):91-94.

    俞敬松, 王华树. 计算机辅助翻译硕士专业教学探讨[J]. 中国翻译, 2016(03):38-42.

    RICHARD M.Mastering VBA for Microsoft Office 2007[M], Indianapolis: Wiley Publishing,Inc. 2008:xxvii, 3.

    RICHARD M. Mastering VBAfor Microsoft Office 2010[M], Indianapolis: Wiley Publishing, Inc.2010:xxvii, 3.


    展开全文
  • VBA宏命令制作坐标图

    2021-06-08 22:21:10
    word、ppt经常要制作图形,例如坐标图,有许多纵横线,有时需要批量制作,手工极不方便,线间距也不好调节,还有设置网格线的粗细、箭头、颜色等等,这时用VBA就可以发挥优势。 一、要求: 每间隔5格主刻度线加粗...

    VBA制作坐标网格图

    word、ppt经常要制作图形,例如坐标图有许多纵横线,手工极不方便,需要批量制作,线间距也不好调节,还需要设置网格线的粗细、箭头、颜色等等,这时用VBA就可以发挥优势。
    一、要求:
    每间隔5格主刻度线加粗显示,组合成一个图;次刻度线较细,组合成一个图。便于批量设置主刻度和次刻度的格式。各条线间距相等
    7*7坐标
    4个组合图形构成坐标图

    主刻度
    主刻度线组合成一个
    次刻度
    次刻度线组合成一个
    二、程序

    Sub coordinate()
     Dim shp1 As Shape, shp2() As Shape, shp3() As Shape
     '设置纵坐标
     j = 1
     k = 1
     ReDim shp2(1 To 1)
     ReDim shp3(1 To 1)
     For i = 1 To 36
      Set shp1 = addline(100 + 5 * (i - 1), 100, 100 + 5 * (i - 1), 275)
      shp1.Name = "shp" & "i" & i
      If (i - 1) Mod 5 = 0 Then
        Set shp2(j) = shp1
        With shp2(j)
         .Line.Weight = 1
        End With
        j = j + 1
        ReDim Preserve shp2(1 To j)
      Else
        Set shp3(k) = shp1
        k = k + 1
        ReDim Preserve shp3(1 To k)
        End If
     Next
    For i = LBound(shp2) To UBound(shp2) - 1
      ActiveDocument.Shapes.Range(Array(shp2(i).Name)).Select (msoFalse)
    Next
    Selection.ShapeRange.Group
    For i = LBound(shp3) To UBound(shp3) - 1
      ActiveDocument.Shapes.Range(Array(shp3(i).Name)).Select (msoFalse)
    Next
    Selection.ShapeRange.Group
     '设置纵坐标
     j = 1
     k = 1
     ReDim shp2(1 To 1)
     ReDim shp3(1 To 1)
    For i = 1 To 36
      Set shp1 = addline(100, 100 + 5 * (i - 1), 275, 100 + 5 * (i - 1))
      shp1.Name = "shp" & "i2" & i
      If (i - 1) Mod 5 = 0 Then
        Set shp2(j) = shp1
        With shp2(j)
          .Line.Weight = 1
        End With
        j = j + 1
        ReDim Preserve shp2(1 To j)
      Else
        Set shp3(k) = shp1
        k = k + 1
        ReDim Preserve shp3(1 To k)
      End If
     Next
    For i = LBound(shp2) To UBound(shp2) - 1
      ActiveDocument.Shapes.Range(Array(shp2(i).Name)).Select (msoFalse)
    Next
    Selection.ShapeRange.Group
    For i = LBound(shp3) To UBound(shp3) - 1
      ActiveDocument.Shapes.Range(Array(shp3(i).Name)).Select (msoFalse)
    Next
    Selection.ShapeRange.Group
    End Sub
    ’作直线的函数,返回直线对象
    Function addline(x1, y1, x2, y2)
        Set addline = ActiveDocument.Shapes.addline(x1, y1, x2, y2)
        With addline.Line
          .ForeColor.RGB = RGB(0, 0, 0)'线条颜色
          .Weight = 0.5'线条粗细
        End With
    End Function
    

    三、关键点
    将所画直线编号并加上name属性,用可变数组存储,ActiveDocument.Shapes.Range(Array(shp2(i).Name)).Select (msoFalse)可以批量选择主刻度(第0,5,10,15……条)和次刻度线(第1,2,3,4,6,7,8,9……),不加“msoFalse”是无法多重选择的。
    Selection.ShapeRange.Group组合所选直线,这样主刻度和次刻度都是组合图形,只要点一下鼠标就可以选中全部线条并编辑格式,直线再多也没有压力。

    展开全文
  • 简单的说,Excel VBA是依附于Excel程序的一种自动化语言,它可以使常用的程序自动化,类似于DOS(磁盘操作系统)中的批处理文件(后缀名“.bat”)。那么它有什么具体的功能?在工作中与常规操作方式相比,具有哪些...
  • VB和VBS、VBA的区别及作用

    千次阅读 2020-10-24 17:39:25
    VBScript是微软开发的一种脚本语言,可以看作是VB语言的简化版,与VBA的关系也非常密切。它具有原语言容易学习的特性,并继承了JavaScript的跨平台的特性。目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接...

    VB

    Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。
    在这里插入图片描述

    “Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
    Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序 [2] 。程序员可以轻松的使用VB提供的组件快速建立一个应用程序,对新手来说可是相当友好了,后面所讲的VBS和VBA其实都是VB语言的分支。

    缺点
    一、不支持继承
    VB 5.0 和 VB 6.0 都是基于对象的编程语言,但是不包含继承特性。VB 中提供了特殊的类的功能,但是还是不能满足程序员的需求。

    二、无原生支持多线程
    Visual Basic 对于多线程无原生支持,只能通过Windows API的调用实现,且极其的不稳定。因为在API创建的线程中,并没有自动初始化运行时库,导致部分的函数无法使用。一般的,在VB6等早期的VB开发环境下,使用API创建线程的目的是完成容易使程序假死的大量数据或者逻辑的计算。

    三、异常处理不完善
    Visual Basic 中内置异常处理,即使未写异常处理代码,一旦用户出错也会弹出一个明确写出出错原因对话框,接着程序终止。
    Visual Basic 中可以使用 Err.Raise抛出异常。对系统及用户抛出的异常的处理常用两种模式:一是使用 On Error Resume Next 处理错误;另一种是使用 On Error Goto 将运行引入错误处理代码。但相对 C++ 等语言而言,这样的异常处理破坏了代码的结构。
    不过上述缺点已经在vb .net中获得改进。

    VBS

    VBScript是Visual Basic Script的简称,有时也被缩写为VBS。VBScript是微软开发的一种脚本语言,可以看作是VB语言的简化版,与VBA的关系也非常密切。它具有原语言容易学习的特性,并继承了JavaScript的跨平台的特性。目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接作为一个可执行程序。用于调试简单的VB语句非常方便。 热衷与整蛊的同学可以去看看用VBS语言来制作恶搞小程序
    在这里插入图片描述
    由于VBScript可以通过Windows脚本宿主调用COM,因而可以使用Windows操作系统中可以被使用的程序库,比如它可以使用Microsoft Office的库,尤其是使用Microsoft Access和Microsoft SQL Server的程序库,当然它也可以使用其它程序和操作系统本身的库。在实践中VBScript一般被用在以下三个方面:

    一、Windows操作系统
    VBScript可以被用来自动地完成重复性的Windows操作系统任务。在Windows操作系统中,VBScript可以在Windows Script Host的范围内运行。Windows操作系统可以自动辨认和执行*.VBS和*.WSF两种文件格式,此外Internet Explorer可以执行*.HTA和*.CHM文件格式。VBS和WSF文件完全是文字式的,它们只能通过少数几种对话窗口与用户通讯。HTA和CHM文件使用HTML格式,它们的程序码可以象HTML一样被编辑和检查。在WSF、HTA和CHM文件中VBScript和JavaScript的程序码可以任意混合。HTA文件实际上是加有VBS、JavaScript成分的HTML文件。CHM文件是一种在线帮助,用户可以使用专门的编辑程序将HTML程序编辑为CHM。

    二、网页浏览器(客户方的VBS)
    网页中的VBS可以用来指挥客户方的网页浏览器(浏览器执行VBS程序)。VBS与JavaScript在这一方面是竞争者,它们可以用来实现动态HTML,甚至可以将整个程序结合到网页中来。
    至今为止VBS在客户方面未能占优势,因为它只获得Microsoft Internet Explorer的支持(Mozilla Suite可以通过装置一个Plugin来支持VBS)。而JavaScript则受到所有网页浏览器的支持。在Internet Explorer中VBS和JavaScript使用同样的权限,它们只能有限地使用Windows操作系统中的对象。

    三、网页服务器(服务器方面的VBS)
    在网页服务器方面VBS是微软的Active Server Pages的一部分,它与JavaServer Pages和PHP是竞争对手。在这里VBS的程序码直接嵌入到HTML页内,这样的网页以ASP结尾。网页服务器Internet信息服务执行ASP页内的程序部分并将其结果转化为HTML传递给网页浏览器供用户使用。这样服务器可以进行数据库闻讯并将其结果放到HTML网页中。

    VBScript主要的优点
    1、由于VBScript由操作系统,而不是由网页浏览器解释,它的文件比较小,易学。
    2、在所有2000 / 98SE以后的Windows版本都可直接使用。

    缺点
    1、现在VBS无法作为电子邮件的附件了。Microsoft Outlook拒绝接受VBS为附件,收信人无法直接使用VBS附件。
    2、VBS的各种编辑器不受欢迎。
    操作系统没有任何特别的保护设施。VBS程序与其它JS、EXE、BAT或CMD程序一样对待。操作系统没有监察恶意功能的能力。

    与VB的区别
    一、不能为变量定义类型
    在VB中,为变量定义类型使用 Dim 变量名 As 类型,但是在VBScript中这样写是错误的。只能使用 Dim 变量名,解释器会自动根据赋值的类型定义变量类型。

    二、不能使用条件编译
    在VB中,可以使用 #If … Then、#ElseIf … Then、#Else、#End If、#Const … = … 等语句定义编译时使用的语句,而由于VBScript不需要编译即可直接执行,所以并不需要条件编译语句。

    三、安全性
    微软决定Outlook和Outlook Express中的HTML邮件可以使用VBScript后出现了许多利用Windows Script Host和ActiveX的功能的电脑病毒。这些病毒之所以能够传播开来也是因为一开始这些系统功能完全未受保护。虽然VBScript和JavaScript使用同样的操作系统的功能的安全措施,一般很难保护VBScript的程序码不被用户看到。

    VBA

    VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。它也可说是一种应用程式视觉化的 Basic 脚本。
    在这里插入图片描述
    从语言结构上讲,VBA是VB的一个子集,它们的语法结构是一样的。两者的开发环境也几乎相同。但是,VB是独立的开发工具,它不需要依附于任何其他应用程序,它有自己完全独立的工作环境和编译、链接系统。VBA却没有自己独立的工作环境,它必须依附于某一个主应用程序,专门用于Office的各应用程序中,如Word、 Excel、 Access等。

    与VB的区别
    1、VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化。
    2、VB具有自己的开发环境,而VBA必须寄生于已有的应用程序。
    3、要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序。

    展开全文
  • ------补充2020/07/15-21:19:(1)我认同python在作为胶水语言和库很多这两点上的优势,不过正如文中所述,99.99%用excel的人是真的用不到那些库,也没时间学习(需要有编程基础/思维,英语不错,愿意抽出时间钻研...

    ------补充2020/07/15-21:19:

    (1)我认同python在作为胶水语言和库很多这两点上的优势,不过正如文中所述,99.99%用excel的人是真的用不到那些库,也没时间学习(需要有编程基础/思维,英语不错,愿意抽出时间钻研等)。很多时候作为有编程专业背景的人会理所当然地觉得这些都很简单,过分高估大众对编程的学习能力,因为他们已经淡忘了自己是如何花费数年努力学习才走到今天的了。

    (2)有人认为python更适合业务逻辑复杂的程序。我个人人为:

    任何能简化编程过程的语言,都有利于让程序在“表面上”看起来更轻爽,毕竟很多功能 库 都帮你在幕后做了。但越是庞大的库系统,意味着其基本功能的“块儿”就越大,所谓尾大不掉,比如python只用调用几个函数就能识别图片上的汉字,但最终识别出来的是毫无格式的汉字,你若是要让它识别表格中的汉子,并且把tab、空格等都显示出来,并且调整一下resolution,blahblah,诸如此类的细节都加以要求,那你会发现你就必须重写这个图片识别函数了。but you can't,因为该函数已经被封装成“块儿”了,你只能用这个块儿,改不了里面。尾大不掉。

    python与vba就是类似这种关系。对于没用库实现 的,vba能更好实现;对于已经用库实现的,你所处的情景可能需要对库函数的功能做微调,但你想改也改不了。

    (3)对于不用定义变量这个问题

    但凡编写稍微有点规模的程序,都要求人们有一定程度系统性、整体性的思维,不但要在业务本省上整体考虑,还要从变量上整体考虑,当你用python编写一个超过40个变量的程序时,其实就已经需要通过规范的命名、定义变量,甚至做简单的注释来帮助你理清思路了,所以即便python不用定义变量,用户也是需要把涉及到的变量好好梳理一下的,毕竟这代码写好了要用很久,而且还要叠加更多的代码。那既然如此,还不如一开始就定义一下变量顺便梳理一下呢,所以我从不排斥定义变量。

    (4)通过缩短元操作时间所累计节省下的大量时间

    工作中,我们大多数脚本其实都是好多好多不到一百行的小程序,而不是那几个执行某个庞大功能的大程序。前者相比后者,在节省时间上的意义绝对有过之无不及。听我解释:

    你有计算过一天当中会调用多少次某段脚本吗?我计算过,大概一百多次。我不可能每次调用都回到桌面,打开python再点run。你一天把回到桌面-打开python-f5run 这三个操作做一百遍试试,回来分享一下感受。特别是像我这种在机关做批量合同项目管理的,工作时的我都是每秒钟都要在脑袋里存储8个左右毫不相关的任务(而且都是要做好一阵子的任务),这很蛋疼,更多用的是短期记忆,如果你突然想调用一份文件,或完成某个操作,不用多,你只要多拐2~3个操作后就想不起来你要做什么了,真就这么现实。所以,我通过大量简单但实用的脚本函数,大大缩短我工作中这些元操作的时间,让我脑袋多线程处理任务的容量又多出了很多。

    另外,excel可以在sheet上直接装载按钮,你将按钮关联上特定的脚本,以后只需要一点按钮,脚本就运行了,而python作为外姓软件完全做不到,比按钮多了十几部元操作,再乘以个100(一天执行该脚本的次数),再乘以个10(即你一天大概用到的脚本数量),就是你一天要精力精神折磨的次数(一万好几千次)。夸张吗?只有经历过的人才懂我在说什么。

    我目前利用sheet做了一个集成界面,因为我在家编辑本文,所以没法上图,等明天上班看我能不能想起来给各位拍一张感受一下。

    而这种与excel本身高度融合的集成界面,是python望尘莫及的。

    (5)关于微软用python取代vba的传言

    我们假设,微软真的用python取代vba了,他们会怎么做?直接把vba从excel中删除吗?显然不会,如果那样的话,全世界在这三十年实践中累积的无数vba代码怎么办?那些仍然靠着vba运行的无数程序、网站、公司、政府、学校,怎么办?全世界靠vba吃饭的程序员也好、金融证券管理blahblah其他管理者,怎么办?学习一门技术是需要付出时间的。

    所以微软必须为这些vba财富和使用者负责,如何处置vba,已经不是他们说的算得了。这就好像人家已经买了你的砖头盖好了房子,你却突然说这个砖头不好我特么不想卖了,于是把人家房子拆了一样。

    另外,你要清楚微软是一家巨头企业,养了世界上无数的工程师,里面有多少时靠着excel这个软件吃饭的,所以他们会不遗余力地做好并推广excel,保持它的竞争力。而基于python的grid studio是开源软件,不是说它不好,只是它的作者没有理由对全世界用户的使用需求负责,他做grid studio就是为了方便自己的学术研究罢了。而且,他即便有动力,也没有这个力量,他的个人力量在庞大的、被巨大利益趋势着完善excel产品的微软面前不值一提。要知道一款好的开源产品的制作需要巨大的天才,比如linux的作者linus。而其前身unix之所以没被完善,其实也就是因为其作者是个大学教授,做Unix仅仅为了教学,完全没有进一步完善它,为全世界用户负责的动机,这一点上简直跟excel vs gridstudio 一模一样。

    再退一步将,如果微软真的傻叉到用python取代了vba,excel中嵌入了python,你知道会发生什么嘛?会有相当一部分用户从excel直接迁移到grid studio。为什么?因为虽然excel的功能完善和复杂程度,在当今没有任何一款表格软件能够匹敌。但是在基本的数据处理功能上,excel能实现的,gridstudio也能实现,这会导致那些对excel的使用只局限于处理数据(用不到字体、样式、各种柱状图等),并且受python热潮影响的,说不定对开源还有一些信仰的人,直接选择grid studio ,因为对这些人来说,迁移的成本不大。

    vba的使用。这对于微软无疑是自掘坟墓。全世界大量激活excel带来的利益,都打水漂了,微软员工将面临场面壮观的裁员。而且,excel与其他office产品有集群效应,ppt、work、visio、excel、access……这些软件都是联通的,但所有这些软件都有开源版本,当excel用户迁移到开源版本,你觉得距离其他office软件的用户迁移到对应开源版本的日子还会远吗?

    你认为微软这么傻叉吗?

    ------以下是原文:

    -----------------

    VBA会被Python代替吗?

    诸如“python比VBA好”这种话都是不会VBA的python教教徒或打python培训广告的教教主说的。我是个实用主义,只要能解决工作问题,让我更轻松的工具我就会使用。

    1、从大环境上说:

    表格处理工具或许除了excel还有很多,但你大概算一下全国14亿人口谁做表格第一个想到的不是excel(开发人员除外)?微软当年通过盗版培养起了大批量用户,这些人会将自己的软件癖好一代代在公司里传下去,因为当全公司99%的历史资料都是excel,99%的员工也都用excel时,你觉得作为那可能存在的1%,你即便会使用再好的工具X又能怎样?每次同事发你excel时你都转成X的格式?你只要操作2、3次就再也爱不起来了。

    更何况办公不仅在电脑上,还在手机上,现在几乎每一部Android手机都有excel,同事在微信上传给你的excel你可以随时打开,然后再通过微信转发到电脑上,然后再直接打开……如上这套操作你想想你一天要进行多少次,每次都转格式吗?而你那款自认为比excel还好用的X,等真正普及到每个人的手机、电脑上都有一份,又要熬走多少代人?

    2、从融合度来说

    python不是不好,只是跟excel融合度并不高,毕竟是外姓。前者操作后者有很多潜在的麻烦。如果我正在做excel,突然做一个简单的批量处理,只需要一个alt+f11就能调出界面,随便敲两行就实现了。有人总拿vba开发大一点的项目运行效率会慢来说事,那我问你,在所有要用到宏命令处理Excel表的人中,有多少是需要开发大程序的?有没有占到总数的0.001%?大部分能写100行代码就开始办公室里面到处吹逼了好吧!

    python虽好,但跟office毕竟不是亲戚,你还得打开python程序,新建文件,导入package。而且下次在想用时,你还得到处找上次的python脚本在哪儿。而vba只需要将excel存为xlsm就能找回代码,再一个alt+f11再按f5全搞定。

    这就跟苹果当年出了只有一个按钮的鼠标,一群苹果信徒对2键鼠标大肆讨伐,而思路正常的人都知道单键鼠标有多么难用,更何况跟别的电脑完全不兼容,我一个几十块钱的鼠标用完就扔掉,随手就换一个,你的单键鼠标咋换?哈哈哈。现在人们对python的盲目崇拜,对VBA的大肆讨伐,也是同样的道理。是中了流行文化的度,务虚不务实,舍近求远。

    3、处理excel真的有必要用python吗?

    现在培训广告的口号大多是:学了python,就能批量处理excel表格,提前下班找妈妈恰饭。但问题是,所有excel处理都不涉及任何复杂算法,不需要二叉树啊堆栈啊定义对象啊什么的,顶多是业务逻辑繁琐一点,for循环if判断嵌套得多一点,变量定义得多一点,仅此而已,而这些困难不论再哪种语言(python or vba)都是存在的,而python的主要优势在于人工智能和大数据,请问贵公司贵岗位做两个excel表用到啥人工智能了?无非就是批量建表,批量核对数据,横查竖查,批量打印,都是非常简单的东西,而在处理这些任务时,excel有着先天优势。即便你用了python处理这些任务,你也只是用python的某个库(xlwt、xlrd),其他的库也基本不涉及,所以你也不能说自己会python了,你只能说自己会python的某两个小包。再退一步说,python这些包都是第三方开发的,而vba是微软亲自维护的,你觉得哪个兼容性好?哪个做得更标准?

    反正我用vba香的很,每天上班工作量是同事的好几倍,假装贼痛苦,但都按时下班;)

    展开全文
  • 1.1.4 浅谈VBA优势 1.2 插件特点及如何发挥插件的优势 1.2.1 Excel插件的特点 1.2.2 Excel插件的优势与限制 1.2.3 如何发挥插件的优势 1.2.4 开发Excel插件的条件 1.2.5 本书架构 第2章 VBA简史与安全性 第3...
  • VBA:完美解决数独问题----全网最强

    千次阅读 2020-11-27 11:42:22
    如何发挥它“快”的优势?那就要利用循环,快速的反复运算处理。那么怎么形成循环呢?那就找规律,要分析解决问题的核心规律,抽象成代码和变量,利用循环,快速运算处理。 现在我们就来分析数独问题: 什么是数独?...
  • 但是,VBA确实不是一门非常友好的语言,它的优势仅仅在于和Excel的良好的兼容性。如果不考虑这些,Python欢迎你哦! 文章目录 VBA Excel 实现单元格内多行内容的文字处理方法 多行遍历判定方法 一些简单VBA功能 删除...
  • EXCEL VBA 从入门到精通

    2018-11-15 13:56:56
    简单的说,Excel VBA是依附于Excel程序的一种自动化语言,它可以使常用的程序自动化,类似于DOS(磁盘操作系统)中的批处理文件(后缀名“.bat”)。那么它有什么具体的功能?在工作中与常规操作方式相比,具有哪些...
  • Excel-VBA-数组-01-定义数组

    千次阅读 2020-05-23 17:09:18
    微信公众号原文 系统:Windows 7 软件:Excel 2016 本系列讲讲数组功能 今天说说如何定义数组 Part 1:背景 ...数组的优势在于它是临时存在于内存中,无需写入硬盘中,它的读写速度非常快 Part 2
  • vba 界面 Modules.zip (Modules.zip) 目录 (Table of Contents) 1 About CC Interface V1.0 1关于CC Interface V1.0 1.1 Features of CCInterface 1.1 CCInterface的功能 1.2 Requirements 1.2要求 2 ...
  • VBA和Python都可以处理Excel,VBA和Python各有什么优势?有传言说,微软会使用Python来替代VBA处理Excel,真的会替代么?在知乎上看到这篇文章,我觉得分析得挺对的,特转载一下,内容有所删减。...
  • 简单的说,Excel VBA是依附于Excel程序的一种自动化语言,它可以使常用的程序自动化,类似于DOS(磁盘操作系统)中的批处理文件(后缀名“.bat”)。那么它有什么具体的功能?在工作中与常规操作方式相比,具有哪些...
  • VBA开发者的转型之路

    2017-08-14 14:43:58
    什么是VBA语言? 相信看这篇文章 的用户应该都知道什么是VBA,在这里还是简单介绍一下,Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)...
  • excel vba 数据分析

    千次阅读 2019-01-20 12:20:00
    VBA(Visual Basic for Application)是Microsoft Office系列软件的内置编程语言,其语法结构与Visual Basic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。 第一节 标识符 一.定义 标识符是一...
  • VBA 创建和使用加载项

    千次阅读 2020-08-24 21:58:06
    最有用的功能之一,增加了工作的专业度,提供了一些关键优势。+ 1.和标准工作簿的比较 所有工作簿文件都可以转换为加载项,但是不是每一个工作不都是和用作加载项。EXCEL加载项是一个常规的XLSM工作簿,与标准工作...
  • VBA_challenge-源码

    2021-03-19 10:43:42
    为了进行此研究,我们收集了每日数据,我们将使用VBA分析其总交易量和当年收益。 结果 根据我们得到的结果,2017年的股票收益比2018年更好。用于此分析的脚本是,我们用来分析2017年数据的各种代码在大多数指数中都...
  • Excel-VBA

    2018-05-19 20:32:48
    写在前面:如果具备一定的编程能力,再看Excel的VBA,我觉得是非常容易理解和上手的,而且,如果在面试的简历中写到“能熟练运用Excel的VBA”,也是自己区别于别人的一个优势。 对于VBA,需要了解以下几个方面: ...
  • VBA里的数据类型有字节型(Byte)、整数型(Integer)、长整数型(Long)、单精度浮点型(Single)、双精度浮点型(Double)、货币型(Currency)、小数型(Decimal)、字符串型(String)、日期型(Date)、布尔型...
  • Dictionary对象比Collection 对象更快,这种速度优势主要体现在增加数据成员、在字典中进行迭代搜索和删除数据成员上。 Dictionary对象包括那些你经常不得不自己编制的封装函数,例如Exists函数和RemoveAll函数。...
  • 来吧!带你玩转 Excel VBA

    千次阅读 2013-08-15 10:03:06
    带你玩转 Excel VBA(含CD光盘1张)(双色)(附带近500个VBA思考练习题,Exceltip.net出品) 罗刚君  杨嘉恺 编著 ISBN 978-7-121-20627-6 2013年7月出版 定价:85.00元 648页 16开 编辑推荐...
  • VBA-正则表达式

    千次阅读 2018-07-19 19:37:23
    1.写好正则表达式,在数据截取处理中是十分有优势的,以下举几个例子来学习一下正则表达式的用法 Option Explicit Public Function getnum2(str As String) With CreateObject("VBScript.RegExp") ....
  • VBA 字典使用小结:关键字循环

    千次阅读 2019-12-22 16:59:03
    通过key进行索引,在特定的场合,有它的优势所在。 应用场合: 1、对一列数据提取唯一值; 2、进行分类汇总; 3、多条件复杂汇总等。 二、声明字典 VBA中创建字典有两种方法: 2.1 引用声明...
  • vba遍历文件夹中的文件夹 使用方便 (Ease of use) The goal is to read and create cabinet folders with no third-party tools or libraries that are not already present in the user's machine. As you will see...
  • 来吧 带你玩转 Excel VBA
  • 通过宏与VBA模块进行自动化 在Access宏或者VBA模块中,你可以使用Docmd.TransferSpreadsheet命令将数据从Access表或查询中导出到Excel(使用acExport选项)。 使用acImport选项,TransferSpreadsheet命令还可以将...
  • VBA基础

    2020-02-18 21:33:21
    VBA概述 1.什么是VBAVBA(Visual Basic for Applications)是office各应用程序(如Word、 Excel...2.VBA优势 批处理,可用于规则明确、机械重复的任务(vba最常用、最主要的功能) Eg:提取身份证信息;多工作簿...
  • VBA for Excel(四)

    2020-03-05 16:37:14
    VBA for Excel(四) 本文涉及到的问题 用VBA填写公式 多方法的区域选择 单元格对象常用的方法属性 区域的选择 range("a1")表达的是当前工作簿当前表的a1单元格是最常用的形式。注意一切没指定从属对象的对象都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,030
精华内容 812
关键字:

vba优势