精华内容
下载资源
问答
  • 一、简单的宏示例打开excel 软件,在视图里打到宏功能,创建一个名为Test_Marco 的宏,其代码如下:Sub Test_Macro()MsgBox "This is a macro in Excel"End Sub二、宏调用1、vbs 调用宏windows下本身可以通过vbs ...

    一、简单的宏示例

    打开excel 软件,在视图里打到宏功能,创建一个名为Test_Marco 的宏,其代码如下:

    Sub Test_Macro()

    MsgBox "This is a macro in Excel"

    End Sub

    二、宏调用

    1、vbs 调用宏

    windows下本身可以通过vbs 脚本很容易的实现宏的调用,代码如下:

    Set oExcel = createobject("Excel.Application")

    oExcel.Visible = false

    Set oWorkbooks = oExcel.Workbooks.Open("d:/test.xlsm")

    oExcel.Run "Test_Macro"

    oWorkbooks.Close

    oExcel.Quit

    Set oWorkbooks= nothing

    Set oExcel= nothing

    保存后,右键选择VBS程序打开执行和直接打开excel 后调用的结果是相同的。

    2、python调用宏

    python 调用宏是利用了win32com模块实现的,具体代码如下:

    from __future__ import print_function

    import unittest

    import os.path

    import win32com.client

    class ExcelMacro(unittest.TestCase):

    def test_excel_macro(self):

    try:

    xlApp = win32com.client.DispatchEx('Excel.Application')

    xlsPath = os.path.expanduser('d:\\test.xlsm')

    wb = xlApp.Workbooks.Open(Filename=xlsPath)

    xlApp.Run('Test_Macro')

    wb.Save()

    xlApp.Quit()

    print("Macro ran successfully!")

    except:

    print("Error found while running the excel macro!")

    xlApp.Quit()

    if __name__ == "__main__":

    unittest.main()

    当然上面的unittest和future模块是非必须的。另外,宏调用还有传参的情况存在,如果出现需要传参的情况时,可以通过如下代码实现传参:

    import win32com.client

    xl=win32com.client.Dispatch("Excel.Application")

    xl.Visible = True

    Path = "C:\\Program Files\\Microsoft Office\\Office14\\XLSTART\\perso.xlsm"

    xl.Workbooks.Open(Filename=Path)

    param1 = "Jeremy"

    param2 = 3

    xl.Application.Run("Proc", param1, param2)

    三、excel 中宏的导入导出

    1、unzip解包获取宏文件

    自excel 2007以后的带宏excel 文件是通过zip工具进行解包的,我这里以linux unzip工具为例,命令如下:

    unzip myfile.xlsm -d myfile

    如上面的测试用的test.xlsm 通过unzip 解包到myfile目录时,会在myflie/xl/ 目录下发现vbaProject.bin 文件。

    注:不过该方法获取的宏文件中,会仍带有原excel 文件的文件名,在执行调用宏操作时,可能会现告警。

    2、python 脚本实现导出宏文件

    在安装完xlsxwriter模块后,其自带一个vba_extract.py 脚本,如果你找不到该脚本也没关系,因为其代码相当短,你可以在其他目录新建一个py文件,内容如下:

    #!C:\Python27\python.exe

    # EASY-INSTALL-SCRIPT: 'xlsxwriter==0.7.3','vba_extract.py'

    __requires__ = 'xlsxwriter==0.7.3'

    __import__('pkg_resources').run_script('xlsxwriter==0.7.3', 'vba_extract.py')

    我这里使用的是0.7.3版本的xlswriter,后续有更新时,后面的版本号可能会不一样,具体以安装后的版本号为准 。以导出上面的test.xlsm 里的测试宏为例:

    $ vba_extract.py test.xlsm

    Extracted: vbaProject.bin

    同样,剥离出了二进制的宏文件。这里导出的方法比较干净,不会保留原excel 文件句,所以在其他excel 中导入使用也不会告警,所以推荐使用该方法导出宏。

    3、导入excel 宏文件

    xlsxwriter 模块带有add_vba_project方法用于导入宏文件,同进也提供了set_vba_name方法用于重命名宏文件。这里使用的还是上面的导出的vbaProject.bin文件,新建一个测试的excel文件如下:

    import xlsxwriter

    # Note the file extension should be .xlsm.

    workbook = xlsxwriter.Workbook('macros.xlsm')

    worksheet = workbook.add_worksheet()

    worksheet.set_column('A:A', 30)

    # Add the VBA project binary.

    workbook.add_vba_project('./vbaProject.bin')

    # Show text for the end user.

    worksheet.write('A3', 'Press the button to say hello.')

    # Add a button tied to a macro in the VBA project.

    worksheet.insert_button('B3', {'macro': 'say_hello',

    'caption': 'Press Me',

    'width': 80,

    'height': 30})

    workbook.close()

    上面的示例中,创建了一个excel 文件,并在A3单元格输入了相关的内容,并在excel B3单元格定义了一个调用宏的按键 。点击该按键可以直接调用导入的宏文件。

    不过遗憾的是,在xlsxwriter 模块中未找到直接调用宏的方法,如果相在导入后,直接调用,可以考虑和上面提到的win32com模块一起使用。

    参考页面:

    展开全文
  • python与macro宏调用

    千次阅读 2018-06-05 17:23:00
    一、简单的宏示例 打开excel 软件,在视图里打到宏功能,创建一个名为Test_Marco 的宏,其代码如下: Sub Test_Macro() MsgBox "This is a macro in Excel" End Sub 二、宏调用 1、vbs 调用宏...

    一、简单的宏示例

    打开excel 软件,在视图里打到宏功能,创建一个名为Test_Marco 的宏,其代码如下:

    1. Sub Test_Macro()
    2. MsgBox "This is a macro in Excel"
    3. End Sub

    二、宏调用

    1、vbs 调用宏

    windows下本身可以通过vbs 脚本很容易的实现宏的调用,代码如下:

    1. Set oExcel = createobject("Excel.Application")
    2. oExcel.Visible = false
    3. Set oWorkbooks = oExcel.Workbooks.Open("d:/test.xlsm")
    4. oExcel.Run "Test_Macro"
    5. oWorkbooks.Close
    6. oExcel.Quit
    7. Set oWorkbooks= nothing
    8. Set oExcel= nothing

    保存后,右键选择VBS程序打开执行和直接打开excel 后调用的结果是相同的。

    2、python调用宏

    python 调用宏是利用了win32com模块实现的,具体代码如下:

    1. from __future__ import print_function
    2. import unittest
    3. import os.path
    4. import win32com.client
    5. class ExcelMacro(unittest.TestCase):
    6. def test_excel_macro(self):
    7. try:
    8. xlApp = win32com.client.DispatchEx('Excel.Application')
    9. xlsPath = os.path.expanduser('d:\\test.xlsm')
    10. wb = xlApp.Workbooks.Open(Filename=xlsPath)
    11. xlApp.Run('Test_Macro')
    12. wb.Save()
    13. xlApp.Quit()
    14. print("Macro ran successfully!")
    15. except:
    16. print("Error found while running the excel macro!")
    17. xlApp.Quit()
    18. if __name__ == "__main__":
    19. unittest.main()

    当然上面的unittest和future模块是非必须的。另外,宏调用还有传参的情况存在,如果出现需要传参的情况时,可以通过如下代码实现传参:

    1. import win32com.client
    2. xl=win32com.client.Dispatch("Excel.Application")
    3. xl.Visible = True
    4. Path = "C:\\Program Files\\Microsoft Office\\Office14\\XLSTART\\perso.xlsm"
    5. xl.Workbooks.Open(Filename=Path)
    6. param1 = "Jeremy"
    7. param2 = 3
    8. xl.Application.Run("Proc", param1, param2)

    三、excel 中宏的导入导出

    1、unzip解包获取宏文件

    自excel 2007以后的带宏excel 文件是通过zip工具进行解包的,我这里以linux unzip工具为例,命令如下:

    unzip myfile.xlsm -d myfile

    如上面的测试用的test.xlsm 通过unzip 解包到myfile目录时,会在myflie/xl/ 目录下发现vbaProject.bin 文件。

    注:不过该方法获取的宏文件中,会仍带有原excel 文件的文件名,在执行调用宏操作时,可能会现告警。

    2、python 脚本实现导出宏文件

    在安装完xlsxwriter模块后,其自带一个vba_extract.py 脚本,如果你找不到该脚本也没关系,因为其代码相当短,你可以在其他目录新建一个py文件,内容如下:

    1. #!C:\Python27\python.exe
    2. # EASY-INSTALL-SCRIPT: 'xlsxwriter==0.7.3','vba_extract.py'
    3. __requires__ = 'xlsxwriter==0.7.3'
    4. __import__('pkg_resources').run_script('xlsxwriter==0.7.3', 'vba_extract.py')

    我这里使用的是0.7.3版本的xlswriter,后续有更新时,后面的版本号可能会不一样,具体以安装后的版本号为准 。以导出上面的test.xlsm 里的测试宏为例:

    1. $ vba_extract.py test.xlsm
    2. Extracted: vbaProject.bin

    同样,剥离出了二进制的宏文件。这里导出的方法比较干净,不会保留原excel 文件句,所以在其他excel 中导入使用也不会告警,所以推荐使用该方法导出宏。

    3、导入excel 宏文件

    xlsxwriter 模块带有add_vba_project方法用于导入宏文件,同进也提供了set_vba_name方法用于重命名宏文件。这里使用的还是上面的导出的vbaProject.bin文件,新建一个测试的excel文件如下:

    1. import xlsxwriter
    2. # Note the file extension should be .xlsm.
    3. workbook = xlsxwriter.Workbook('macros.xlsm')
    4. worksheet = workbook.add_worksheet()
    5. worksheet.set_column('A:A', 30)
    6. # Add the VBA project binary.
    7. workbook.add_vba_project('./vbaProject.bin')
    8. # Show text for the end user.
    9. worksheet.write('A3', 'Press the button to say hello.')
    10. # Add a button tied to a macro in the VBA project.
    11. worksheet.insert_button('B3', {'macro': 'say_hello',
    12. 'caption': 'Press Me',
    13. 'width': 80,
    14. 'height': 30})
    15. workbook.close()

    上面的示例中,创建了一个excel 文件,并在A3单元格输入了相关的内容,并在excel B3单元格定义了一个调用宏的按键 。点击该按键可以直接调用导入的宏文件。

    不过遗憾的是,在xlsxwriter 模块中未找到直接调用宏的方法,如果相在导入后,直接调用,可以考虑和上面提到的win32com模块一起使用。

     

    参考页面:

    xlsxwriter macros使用页

    转载于:https://my.oschina.net/u/942203/blog/1824710

    展开全文
  • 一、简单的宏示例打开excel 软件,在视图里打到宏功能,创建一个名为Test_Marco 的宏,其代码如下:Sub Test_Macro()MsgBox "This is a macro in Excel"End Sub二、宏调用1、vbs 调用宏windows下本身可以通过vbs ...

    一、简单的宏示例

    打开excel 软件,在视图里打到宏功能,创建一个名为Test_Marco 的宏,其代码如下:

    Sub Test_Macro()

    MsgBox "This is a macro in Excel"

    End Sub

    二、宏调用

    1、vbs 调用宏

    windows下本身可以通过vbs 脚本很容易的实现宏的调用,代码如下:

    Set oExcel = createobject("Excel.Application")

    oExcel.Visible = false

    Set oWorkbooks = oExcel.Workbooks.Open("d:/test.xlsm")

    oExcel.Run "Test_Macro"

    oWorkbooks.Close

    oExcel.Quit

    Set oWorkbooks= nothing

    Set oExcel= nothing

    保存后,右键选择VBS程序打开执行和直接打开excel 后调用的结果是相同的。

    2、python调用宏

    python 调用宏是利用了win32com模块实现的,具体代码如下:

    from __future__ import print_function

    import unittest

    import os.path

    import win32com.client

    class ExcelMacro(unittest.TestCase):

    def test_excel_macro(self):

    try:

    xlApp = win32com.client.DispatchEx('Excel.Application')

    xlsPath = os.path.expanduser('d:\\test.xlsm')

    wb = xlApp.Workbooks.Open(Filename=xlsPath)

    xlApp.Run('Test_Macro')

    wb.Save()

    xlApp.Quit()

    print("Macro ran successfully!")

    except:

    print("Error found while running the excel macro!")

    xlApp.Quit()

    if __name__ == "__main__":

    unittest.main()

    当然上面的unittest和future模块是非必须的。另外,宏调用还有传参的情况存在,如果出现需要传参的情况时,可以通过如下代码实现传参:

    import win32com.client

    xl=win32com.client.Dispatch("Excel.Application")

    xl.Visible = True

    Path = "C:\\Program Files\\Microsoft Office\\Office14\\XLSTART\\perso.xlsm"

    xl.Workbooks.Open(Filename=Path)

    param1 = "Jeremy"

    param2 = 3

    xl.Application.Run("Proc", param1, param2)

    三、excel 中宏的导入导出

    1、unzip解包获取宏文件

    自excel 2007以后的带宏excel 文件是通过zip工具进行解包的,我这里以linux unzip工具为例,命令如下:

    unzip myfile.xlsm -d myfile

    如上面的测试用的test.xlsm 通过unzip 解包到myfile目录时,会在myflie/xl/ 目录下发现vbaProject.bin 文件。

    注:不过该方法获取的宏文件中,会仍带有原excel 文件的文件名,在执行调用宏操作时,可能会现告警。

    2、python 脚本实现导出宏文件

    在安装完xlsxwriter模块后,其自带一个vba_extract.py 脚本,如果你找不到该脚本也没关系,因为其代码相当短,你可以在其他目录新建一个py文件,内容如下:

    #!C:\Python27\python.exe

    # EASY-INSTALL-SCRIPT: 'xlsxwriter==0.7.3','vba_extract.py'

    __requires__ = 'xlsxwriter==0.7.3'

    __import__('pkg_resources').run_script('xlsxwriter==0.7.3', 'vba_extract.py')

    我这里使用的是0.7.3版本的xlswriter,后续有更新时,后面的版本号可能会不一样,具体以安装后的版本号为准 。以导出上面的test.xlsm 里的测试宏为例:

    $ vba_extract.py test.xlsm

    Extracted: vbaProject.bin

    同样,剥离出了二进制的宏文件。这里导出的方法比较干净,不会保留原excel 文件句,所以在其他excel 中导入使用也不会告警,所以推荐使用该方法导出宏。

    3、导入excel 宏文件

    xlsxwriter 模块带有add_vba_project方法用于导入宏文件,同进也提供了set_vba_name方法用于重命名宏文件。这里使用的还是上面的导出的vbaProject.bin文件,新建一个测试的excel文件如下:

    import xlsxwriter

    # Note the file extension should be .xlsm.

    workbook = xlsxwriter.Workbook('macros.xlsm')

    worksheet = workbook.add_worksheet()

    worksheet.set_column('A:A', 30)

    # Add the VBA project binary.

    workbook.add_vba_project('./vbaProject.bin')

    # Show text for the end user.

    worksheet.write('A3', 'Press the button to say hello.')

    # Add a button tied to a macro in the VBA project.

    worksheet.insert_button('B3', {'macro': 'say_hello',

    'caption': 'Press Me',

    'width': 80,

    'height': 30})

    workbook.close()

    上面的示例中,创建了一个excel 文件,并在A3单元格输入了相关的内容,并在excel B3单元格定义了一个调用宏的按键 。点击该按键可以直接调用导入的宏文件。

    不过遗憾的是,在xlsxwriter 模块中未找到直接调用宏的方法,如果相在导入后,直接调用,可以考虑和上面提到的win32com模块一起使用。

    参考页面:

    展开全文
  • 宏的功能(1)选中Excel表格中某些行或列,运行某个Macro,自动根据选中cells创建worksheets,worksheets名字就是选中cells名字。(2)创建worksheet同时,要把某指定目录下与新worksheet同名...
  • 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,什么sizeof取不到数组大小? 42 声明问题 43 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 43 *1.26 main正确定义...
  • 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,什么sizeof取不到数组大小? 42 声明问题 43 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 43 *1.26 main正确定义...
  • 创建一个额外特性,也可以设置它们成为系统默认,在Configuration>Options>Default Personalities下设置 3.1、配置编译器特性 看附录A 3.1.1、设置系统头文件 在系统包括系统标题选项卡上标题,设置您系统...
  • 《你必须知道495C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,什么sizeof取不到数组大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main正确...
  • 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,什么sizeof取不到数组大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main正确...
  • 问题描述:已知一个连杆模型,其一端与大地用旋转副连接,在此旋转副下已设置驱动,需要设计一个GUI界面,当点击按钮时,连杆绕铰接点旋转1s,模型如下图。 步骤一:进行一次交互式仿真,获取所需所需仿真命令。 ...

    本学习参考宋博士的博客。
    《基于ADAMS的二次开发》
    问题描述:已知一个连杆模型,其一端与大地用旋转副连接,在此旋转副下已设置驱动,需要设计一个GUI界面,当点击按钮时,连杆绕铰接点旋转1s,模型如下图。
    模型
    步骤一:进行一次交互式仿真,获取所需所需仿真的命令。
    1.仿真设置界面
    仿真
    2.打开command window
    在这里插入图片描述
    3.找到其中关于交互式仿真的代码复制。
    仿真命令
    步骤二:创建宏,这个宏代表仿真一秒的命令。
    创建宏
    粘贴上一步复制的代码,此处宏的名字可设为MACRO_rotate,点击OK。
    创建宏窗口
    步骤三:创建GUI,目的是创建一个按钮,并使点击按钮执行创建的宏。
    1.创建GUI界面
    创建GUI

    创建GUI
    点击New。此处名字设为rotate0612,目录默认放在gui下,并且选择’OK’以创建OK按钮。
    在这里插入图片描述
    2.下一步就是把创建的按钮与宏命令关联,首先选择创建的按钮。
    在这里插入图片描述
    在这里插入图片描述
    选择指定命令。
    在这里插入图片描述
    在这里插入图片描述
    写入MACRO_rotate,将按钮与宏关联,退出。
    此时点击OK按钮已可以仿真了。
    步骤四:创建工具栏,以方便GUI界面的调用
    在这里插入图片描述
    参考里面的代码,在最下面加入以下代码,即可。

    MENU1  &yinkang
         NAME=rotate
         HELP=rotate the bar
         BUTTON2  &rotate0612
                HELP=rotate
                CMD=int dia disp dia=.gui.rotate0612
    

    在这里插入图片描述
    缺点:仿真结束后需要从交互式仿真界面退出仿真过程。

    展开全文
  • 3.12 我需要根据条件把一个复杂表达式赋值给两个变量中一 个。可以用下边这样代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ...
  • Excel 2007出于安全考虑,对文件名作了处理,以xlsx后缀名的文件不包含任何或者VBA代码,而以xlsm后缀名的文件才可以enable macro。所以如果要Excel 2007撰写任何VBA代码,都需要保存xlsm类型,而不要...
  • 你必须知道495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.12 我需要根据条件把一个复杂表达式赋值给两个变量中一 个。可以用下边这样代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ...
  • 1. 利用参数创建字符串:# 运算符 在类函数(function-like macro替换部分中,“#”符号用作一个预处理运算符,它可以把语言符号(token)转化字符串。例如,如果 x 是一个宏参量,那么 #x 可以把参数...
  • define 中“ # 运算符”和“ ## 运算符” 1.利用参数创建字符串:# 运算符 ...例如,如果 x 是一个宏参量,那么 #x 可以把参数转化相应字符串。该过程称为字符串化 #include <stdio.h> #define ...
  • 1. 利用参数创建字符串:# 运算符 在类函数(function-like macro替换部分中,“#”符号用作一个预处理运算符,它可以把语言符号(token)转化字符串。例如,如果 x 是一个宏参量,那么 #x 可以把参数...
  • 自己写dll简介

    2009-12-12 10:17:40
    如果你在创建工程时候选择了Exprot Symbols, 那么VC还会自动帮你创建一个示例文件Test.h,此文件定义出 #ifdef TEST_EXPORTS # define TEST_API __declspec(dllexport) #else # define TEST_API __declspec...
  • freemarker 自定义指令

    2014-07-14 10:56:43
    1 简介 自定义指令可以使用 macro 指令来定义,这是模板设计者所关心内容。 Java 程序员若不想在模板中实 现定义指令 ,而是在 Java ...macro 指令自身不打印任何内容,它只是用来创建宏变量,所以就会有一个名为gree
  • freemarker总结

    2015-01-04 14:22:05
    上面代码将导入/lib/common.ftl模板文件中所有变量,将这些变量放置在一个名为comMap对象中. 创建库 ? 下面是一个创建例子(假设保存在lib/my_test.ftl中): <#macro copyright date> <p>...
  • ipython-2.2.0

    2014-09-14 09:18:11
    创建一个名称 name 的宏,执行 name 就是执行 n1-n2 n3-n4 ... n5 .. n6 ...这些代码。 %pwd显示当前目录 %pycat filename用语法高亮显示一个 python 文件(不用加.py后缀) %save filename n1-n2 n3-n4 ... n5 .....
  • 我们不知道 a[] 一个分量会被改写,但 i 的确会增加 1, 对吗? o 4.9 ++i 和 i++ 有什么区别? o 4.10 如果我不使用表达式值, 我应该用 ++i 或 i++ 来自增一个变量吗? o 4.11 什么如下代码 int a = ...
  • MASM汇编编辑器 好用 简单

    热门讨论 2008-12-13 12:16:07
    /Fr 文件名——创建一个可在PWB下浏览.SBR源浏览文件 /Fo 文件名——根据指定文件名生成模块文件,而不是采用缺省名 /Fe 文件名——根据指定文件名生成可执行文件,而不是采用缺省名 /Fm 文件名——创建一...
  • Opus:一个完全开放,免版税,高度通用音频编解码器。 PortAudio:免费、跨平台、开源音频I/O库。 SELA:SimplIE无损音频。 SoLoud:简单便携游戏音频引擎。 Speex:免费编解码器,Opus所废弃。...
  • 73. syncapp--------创建一个公文包 74. sysedit--------系统配置编辑器 75. sigverif-------文件签名验证程序 76. ciadv.msc------索引服务程序 77. shrpubw--------创建共享文件夹 78. secpol.msc-----本地...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧3 获得指定行、列中最后一个非空单元格 12 技巧4 定位单元格 12 技巧5 查找单元格 12 5-1 使用Find方法 12 5-2 使用Like运算符 12 技巧6 替换单元格内字符串 12 技巧7 复制单元格区域 12 技巧8 仅复制数值到另...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧3 获得指定行、列中最后一个非空单元格 17 技巧4 定位单元格 20 技巧5 查找单元格 21 5-1 使用Find方法 21 5-2 使用Like运算符 25 技巧6 替换单元格内字符串 26 技巧7 复制单元格区域 27 技巧8 仅复制数值到另...
  • freemarker语法完整版

    2012-03-29 17:35:52
    Freemarker页面语法 ... 类似于java里的import,它导入文件,然后就可以在当前文件里使用被导入文件里的宏组件 用例 假设mylib.ftl 里定义了宏copyright 那么我们在其他模板页面里可以这样使用 Freemarker代码 ...
  • 2009 达内Unix学习笔记

    2010-02-10 19:45:32
    一个命令输出内容写入到一个文件里面。如果该文件存在, 就将该文件内容覆盖; 如果不存在就先创建该文件, 然后再写入内容。 输出重定向,意思就是说,将原来屏幕输出变为文件输出,即将内容输到文件中。 ...
  • //定义一个继承自com.ql.util.express.Operator操作符 public class JoinOperator extends Operator{ public Object executeInner(Object[] list) throws Exception { Object opdata1 = list[0]; Object ...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

创建一个名为macro1的宏