精华内容
下载资源
问答
  • excel macro

    2017-09-16 09:54:51
    好用 的 excel macro,可以build好用 的 excel macro,可以build好用 的 excel macro,可以build好用 的 excel macro,可以build
  • excel Macro

    2012-12-07 23:21:30
    学习宏的好文档,你可以掌握excel 宏的使用
  • EXCEL MACRO

    2015-11-09 09:07:25
    EXCEL工作表內數據自動隔行或列加總,輕鬆製作觀禮分析資料。
  • excel macro Calculation

    2019-01-12 11:11:01
    excel macro 來控制儲存格的 公式是否重新計算,提供簡單範例
  • Excel Macro to Generate Database Insert Script Excel宏生成数据库插入脚本 对于开发人员来说,一次在数据库中添加/编辑主数据或静态数据一直很麻烦,因为它需要为每个小的文本更改集编写脚本。 对于不了解SQL...
  • 我有一个写好的excel macro是用于读取outlook邮件内容并书写进excel的。Excel Macro 手动触发没有任何问题,运行完美。 现在我又写了一个outlook macro 用于自动触发这个excel Macro。 当指定邮件发送至outlook, 该...
  • 适用于红色团队和分析师的Excel宏文档阅读器/编写器。 描述此工具实际功能的博客文章可在和找到。 安装/建造 克隆或下载此存储库,然后可以使用dotnet执行该工具-例如: dotnet run -- build --decoy-document Docs...
  • java call Excel Macro

    2021-02-28 09:44:33
    //在这个文档上运行宏,并包含多个参数 调用excel宏 调用excel宏和调用word宏有点区别,因为excel不能将宏保存到“所有文档(Normal)”上,因此在调用宏的时候需要指明宏所在的具体文档,最后一条语句需要这么写: ...

    java需要通过调用com来和office交互,这个可以自己编写jni来实现,不过目前已有三个开源项目支持java对com的调用,它们分别是:com4j、j-Interop和Jacob。下面先对这三个项目做个简单介绍。

    com4j,项目地址是:http://java.net/projects/com4j/ ,很久没更新了,要使用这个库,需要下载相关的源代码(也可以通过http://download.java.net/maven/2/org/jvnet/com4j/ 这个地址去查找相关编译好的包)编译或者通过maven获取maven-com4j-plugin插件,然后运行tlbimp.jar(可以在http://download.java.net/maven/2/org/jvnet/com4j/tlbimp/ 里找到)或者maven-com4j-plugin插件去生成相关com组件的模型接口代码(当然前提是要先找到com组件的承载文件所在,这个是有些难度的),然后再使用这些代码去调用相关的com组件,使用起来还是比较麻烦的,而且还存在一些严重的bug。

    j-Interop,项目地址是:http://www.j-interop.org/ ,一个纯粹的java库,没有使用jni方式去调用com组件。但是它的问题是只能调用dcom(分布式com),是通过CIFS协议去调用dcom的,因此要使用它,首先得给机器配置好dcom服务,同时还有一点比较麻烦,就是你要自己去寻找dcom组件的ID(可以通过运行dcomcnfg去查看)。

    Jacob,项目地址是:http://sourceforge.net/projects/jacob-project/ ,目前最新的更新是2011年2月份的,本文将着重介绍如何通过这个项目去调用宏。

    项目介绍完毕,现在正式开始介绍如何通过Jacob去调用宏。首先,需要下载Jacob的发布包,里面应该包含一个jar包:jacob.jar(放在项目的classpath下),两个dll文件:jacob-1.15-M4-x64.dll、jacob-1.15-M4-x86.dll,两个dll文件请根据系统架构属性选择其中一个,然后放在path路径下(也可以直接放在C:\WINDOWS\system32下面)。这样就可以开始编写调用宏的java程序了。

    调用word宏

    第一步,录制宏

    在d盘根目录下(文档存放在哪里没有要求)新建一个word文档,名为test1.doc,打开,然后录制一段宏(具体录制哪类宏自便,调用时无需传参数即可,但是宏的保存方式要选择“所有文档(Normal)”,这样任何文档都可以调用这个宏了),宏名为macro1。

    第二步,将test1.doc中宏macro1产生的影响撤销(比如那段宏是输入一段文字,那么就把这段文字删除)并保存,以便观察测试。

    第三步,编写java调用代码

    Java代码 10828255_1.gif 10828255_2.png

    10828255_3.gif

    ActiveXComponent word=newActiveXComponent("Word.Application");

    Dispatch documents = word.getProperty("Documents").toDispatch();

    Dispatch document = Dispatch.call(documents,"Open","d:/test1.doc").toDispatch();//指定要打开的文档并且打开它

    Dispatch.call(word,"Run",newVariant("macro1"));//在这个文档上运行宏

    ActiveXComponent word=new ActiveXComponent("Word.Application");

    Dispatch documents = word.getProperty("Documents").toDispatch();

    Dispatch document = Dispatch.call(documents, "Open", "d:/test1.doc").toDispatch();//指定要打开的文档并且打开它

    Dispatch.call(word, "Run", new Variant("macro1"));//在这个文档上运行宏

    第四步,执行这段java代码

    执行完成之后,可以发现被撤销的宏影响又回来了,说明宏调用成功。

    第五步,高级特性

    在相同目录下(文档存放目录没有规定)新建一个空白的word文档test2.doc,然后将以上代码修改为:

    Java代码 10828255_1.gif 10828255_2.png

    10828255_3.gif

    ActiveXComponent word=newActiveXComponent("Word.Application");

    Dispatch documents = word.getProperty("Documents").toDispatch();

    Dispatch document = Dispatch.call(documents,"Open","d:/test2.doc").toDispatch();//指定要打开的文档并且打开它

    Dispatch.call(word,"Run",newVariant("macro1"));//在这个文档上运行宏

    ActiveXComponent word=new ActiveXComponent("Word.Application");

    Dispatch documents = word.getProperty("Documents").toDispatch();

    Dispatch document = Dispatch.call(documents, "Open", "d:/test2.doc").toDispatch();//指定要打开的文档并且打开它

    Dispatch.call(word, "Run", new Variant("macro1"));//在这个文档上运行宏

    执行以上代码,可以发现,我们在test1.doc上录制的宏也可以在test2.doc上运行成功(当然选择宏保存时必须要保存到“所有文档(Normal)”中)。

    深入探索

    以上的例子只是一个很简单的没有参数的宏调用,如果有参数又该如何调用呢?其实有参数的情况也不是很复杂,只需将以上调用的java代码稍微修改下即可实现:

    Java代码 10828255_1.gif 10828255_2.png

    10828255_3.gif

    ActiveXComponent word=newActiveXComponent("Word.Application");

    Dispatch documents = word.getProperty("Documents").toDispatch();

    Dispatch document = Dispatch.call(documents,"Open","d:/test1.doc").toDispatch();//指定要打开的文档并且打开它

    Dispatch.call(word,"Run",newVariant("macro1"),newVariant(arg1),newVariant(arg2),..);//在这个文档上运行宏,并包含多个参数

    ActiveXComponent word=new ActiveXComponent("Word.Application");

    Dispatch documents = word.getProperty("Documents").toDispatch();

    Dispatch document = Dispatch.call(documents, "Open", "d:/test1.doc").toDispatch();//指定要打开的文档并且打开它

    Dispatch.call(word, "Run", new Variant("macro1"),new Variant(arg1),new Variant(arg2),..);//在这个文档上运行宏,并包含多个参数

    调用excel宏

    调用excel宏和调用word宏有点区别,因为excel不能将宏保存到“所有文档(Normal)”上,因此在调用宏的时候需要指明宏所在的具体文档,最后一条语句需要这么写:

    Java代码 10828255_1.gif 10828255_2.png

    10828255_3.gif

    Variant result = Dispatch.call(excel,"Run",newVariant("test.xls!Module1.test"),//这里需要说明宏所在的文档

    newVariant(arg1),

    newVariant(arg2));

    Variant result = Dispatch.call(excel, "Run", new Variant("test.xls!Module1.test"),//这里需要说明宏所在的文档

    new Variant(arg1),

    new Variant(arg2));

    总结

    利用java直接调用office宏的应用场景非常广泛,比如在对文档进行加密、解密和其它保护时特别有用。带参数的宏调用甚至可以灵活的编写成模版宏然后将业务数据注入到相关文档中,而且因为是通过office自己操作自己,所以office文档绝不会出现其它的用java操作office文档时可能出现的文档变异问题,在某些重要文档的操作上非常有用(比如文档格式要求非常严格的合同文档上)。另外,Jacob本身就可以通过调用com来直接操作office(包括编辑),而且office文档不会有任何变异,只是编码难度可能比较大,具体的操作方式这里就不赘述了,可以参考相关api。

    展开全文
  • #If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) ...在64位的office上运行带Macroexcel出现如下的报错 Microsoft Visual Basic for Applications Compile err.

    在64位的office上运行带Macro的excel出现如下的报错

    Microsoft Visual Basic for Applications Compile error: The code in this project must be updated for use on 64-bit systems. Please review and update Declare statements and then mark them with the PtrSafe attribute.

     

     我们发现如下的报错代码片段

    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    注意看

    #If VBA7 Then
        Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
    #Else
        Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
    #End If

    划重点:需要在异常代码定义的Declare前面加上PtrSafe关键字

    我这里出错代码具体修改情况如下

    报错前 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    修改后 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    参考微软的文章 The code in this project must be updated for use on 64-bit systems - Office | Microsoft Docs

    展开全文
  • Sub createtxt() Dim Rng As Range  Dim obj, blogTxt  For Each Rng In Range("A1:A100")  Myname = Rng  MyText = Rng.Offset(0, 0)   ... Set obj = CreateObject("sc
    Sub createtxt()
    

    Dim Rng As Range

      Dim obj, blogTxt

        For Each Rng In Range("A1:A100")

            Myname = Rng

            MyText = Rng.Offset(0, 0)

        

        Set obj = CreateObject("scripting.filesystemobject")


        Set blogTxt = obj.OpenTextFile("c:\ab.txt", 8, True)
        
     
        '<option value="911 Targa 996">911 Targa 996</option>
        If MyText <> "" Then
            blogTxt.Write "<option value='" & MyText & "'>" & MyText & "</option>" & vbCrLf
        End If
        'blogTxt.Write MyText & vbCrLf
        blogTxt.Close

        Set obj = Nothing

        Set blogTxt = Nothing
        
        If MyText = "" Then
            GoTo a
        End If

     Next
    a:
     
     
    End Sub

    展开全文
  • Excel 4.0 Macro 宏规范

    2020-04-17 15:16:34
    Microsoft很早就使用VBA宏(Visual Basic for Applications)来代替Excel 4.0宏技术,这导致Excel 4.0宏并不为大众所熟知。并且Excel 4.0宏存放在Excel 97 - 2003格式(.xls)文件中。
  • Python - run Excel macro

    2020-12-24 19:34:53
    I would like to use Python to run a macro contained in MacroBook.xlsm on a worksheet in Data.csv.Normally in excel, I have both files open and shift focus to the Data.csv file and run the macro from M...

    I would like to use Python to run a macro contained in MacroBook.xlsm on a worksheet in Data.csv.

    Normally in excel, I have both files open and shift focus to the Data.csv file and run the macro from MacroBook. The python script downloads the Data.csv file daily, so I can't put the macro in that file.

    Here's my code: import win32com.client import os import xl excel = win32com.client.Dispatch("Excel.Application") macrowb = xl.Workbook('C:\MacroBook.xlsm') wb1 = xl.Workbook('C:\Database.csv') excel.Run("FilterLoans")

    I get an error, "pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"Cannot run the macro 'FilterLoans'. The macro may not be available in this workbook or all macros may be disabled.", u'xlmain11.chm', 0, -2146827284), None)"

    The error states that FilterLoans is not available in the Database.csv file...how can I import it?

    展开全文
  • excel2013找不到macro1

    2020-08-29 17:30:01
    首先打开Excel2010,就会出现“找不到macro1!$A$2”问题 这是因为隐含在隐藏的名称中没有删除干净 在Excel界面上按Alt+F11,进入VBE窗口,在左边“工程”窗口中点选出问题的那个工作簿,然后插入一个模块 将如下代码...
  • Excel 4.0 Macro help.chm

    2016-08-04 22:55:08
    Excel 4.0 Macro help,由Macrofun.hlp转化而来的excel宏函数帮助文件(chm格式)。
  • 各位大神,小弟菜鸟一枚,刚刚学macro,下面这段代码的autofit怎么也运行不了,不知道为什么,求帮助! Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets sht.Cells.EntireColumn.AutoFit ...
  • 各位大神,我在运行这段代码的时候,完全没有效果,好像没有运行一样,小弟是菜鸟一枚,搞了几天都没搞定,请大神们帮帮忙吧!!谢谢了!!! Sub StepChangeTemplate() ... Sheets(1).Cells(myRow, myColn)....
  • excel macro(1)

    千次阅读 2006-05-18 18:46:00
    闲暇时间,觉得无聊,突然想到前几天pm问过我会不会excelmacro,我想应该是这个很有意思的东西,既然是basic脚本,那我以前也毕竟在大一的时候写过一些,今天就开始尝试了起来.开始的时候无从下手,因为在ms的网站上查到...
  • 如何重用Excel Macro(宏)

    千次阅读 2012-07-02 12:11:04
    1 创建一个空文件,在这个文件中创建你的Macro脚本,保存这个文件为 Personal.xlsb 2 复制这个文件到你的电脑的一下目录: XP: C:\Documents and Settings\\Application Data\Microsoft\Excel\XLSTART  ...
  • Excel宏的介绍及应用

    千次阅读 2020-06-15 23:21:07
    宏(Macro)是什么 在Excel的“视图”标签页下,有一个宏的功能,示例如下图: 宏其实是一段可以重复执行的代码,对应上图的两个选项: 查看已经存在的宏的代码段,并且可以执行 录制宏: Excel提供了可以像录制...
  • key, 0, type, value) winreg.CloseKey(hkey) return old if os.path.exists(r"C:\\Users\\siddharth.mungekar\\Desktop\\MemleakTest\\test.xlsm"): # Set macro settings to 1 to allow all macros old = ...
  • python与macro宏调用

    2020-11-24 01:15:54
    excelmacro宏通过vba语言实现excel 的可编程,这是excel 强大的地方。同样,利用python的相关模块,我们可以在此基础上进一步增强 excel 的编程性,通过python 我们可以实现excel 宏的导入导出及通过python实现宏...
  • Public CntFiles As Long Sub 遍历()  Dim MyPath, MyFilename    MyPath = "E:\学习"  strPath = MyPath & "/" '"设置要遍历的文件夹目录 ... Set fso = CreateObject("Scripting.FileSystem
  • Use the Excel Object Model Run command to execute the macro
  • EXCEL加载宏工具

    2012-12-04 22:19:32
    EXCEL加载宏工具
  • excel宏导入excel数据经典
  • Excel Macro调用SAP Module

    千次阅读 2010-07-12 08:49:00
    Public ERP As Object Public connect As Object Public sapModule As Object Public renturn As Object Public tab As Object   Public Function Logon
  • 闲话少说,昨天闲着看小说的时候,突然朋友来信询问用Excel的VBA把XML转成Excel格式表示出来的程序编译通不过。他是网上找的一个简单的例子,没想到程序虽短,坑却不少。随即东拼西凑,做了个例子大致解决问题。网上...
  • 读取并处理excel文件

    2020-12-10 14:08:53
    } 对excel读取的行操作的listener实现类 @Slf4j @Data @NoArgsConstructor @AllArgsConstructor public class ExcelAnalysisListener extends AnalysisEventListener<PlatformSettlementExcelExportResDto> { ...
  • 用PHPExcel时,编辑excel模板(模板比较复杂),但模板里的宏会丢失,用什么方法才能不丢失模板里的宏呢? 或者不用PHPEXCEL也行,只要能打开excel模板,并且能插入值,保存,并且不丢失里面的宏 就行
  • Sub DownLoadMacro() '定义过程名称 ...sht 为excel工作表对象变量,指向某一工作表 Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用 Dim rs As New ADODB...

空空如也

空空如也

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

excelmacro