当前位置:文档之家› 通过EXCEL宏和SAP Script进行批量业务处理

通过EXCEL宏和SAP Script进行批量业务处理

通过EXCEL宏和SAP Script进行批量业务处理
通过EXCEL宏和SAP Script进行批量业务处理

通过EXCEL宏和SAP Script进行批量业务处理

SAP提供了很多批量导入的工具,但问题是一般情况下不会赋予普通用户这些权限,因此我结合EXCEL VBA和SAP Script功能整理出一个简易的批量业务处理方式,供大家参考

使用SAP Script Recording功能录制SAP操作,生成代码块

1.激活SAP Script Recording

2.选择存放路径和script代码块文件名称

3.点击开始录制SAP操作,建议以”/N”+事务代码,以保存为结尾。生成如下程序

代码文件,可以用文本编辑器打开

通过EXCEL VBA编写宏代码,用于读取数据模板和导入SAP

1.进入VBA编辑视图

2.复制Script代码块中的代码,并做以下适当修改:

a)在两个"Application" 和 "Connection" 之前加入"SAP"

b)修改录制中的固定值,改为模板中的相应字段,如 Range("A" & I).Value等

c)如有更为复杂的数据处理需求,可以在宏代码中加入适当的判断或者循环语句

以下代码用于修改物料主数据的,前段和末端代码可以沿用,只需用script代码覆盖病修改中段原代码即可。供参考。

Sub EXCEL_to_SAP()

yes_No = MsgBox("Do you want to upload data into SAP really?", vbOKCancel)

If yes_No = 2 Then

End

End If

Range("Z1").Value = "=COUNTA(A:A)": TEMP = Range("Z1").Value: Range("Z1").Value = ""

On Error GoToNotLoggedOnSAP:

Set SapGuiAuto = GetObject("SAPGUI") 'Get the SAP GUI Scripting object

Set SapApplication = SapGuiAuto.GetScriptingEngine 'Get the currently running SAP GUI

Set SapConnection = SapApplication.Children(0) 'Get the first system that is currently connected

Set session = SapConnection.Children(0) 'Get the first session (window) on that connection

GoTo 10:

NotLoggedOnSAP:

x = MsgBox("You are not logged on SAP. Please log on and try again.", vbOKOnly, "Not Logged on SAP")

Exit Sub

On Error GoTo 0

10 If TEMP > 1 Then

For I = 2 To TEMP

'********************** 1. copy from scrip

'********************** 2. add "SAP" before 2 "Application" and 2 "Connection" in next 10 lines

'********************** 3. change fixed value by fields' value, refer to ->Range("A" &

I).Value <-

If Not IsObject(Application) Then

Set SapGuiAuto = GetObject("SAPGUI")

Set SapApplication = SapGuiAuto.GetScriptingEngine

End If

If Not IsObject(Connection) Then

Set SapConnection = SapApplication.Children(0)

End If

If Not IsObject(session) Then

Set session = SapConnection.Children(0)

If IsObject(WScript) Then

WScript.ConnectObject session, "on"

WScript.ConnectObject Application, "on"

End If

session.findById("wnd[0]").maximize

session.findById("wnd[0]/tbar[0]/okcd").Text = "/nmm02"

session.findById("wnd[0]").sendVKey 0

session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").Text = Range("A" & I).Value

session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").caretPosition = 12

session.findById("wnd[0]").sendVKey 0

session.findById("wnd[1]").sendVKey 0

session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB 2:SAPLMGD1:2001/ctxtMARA-EXTWG").Text = Range("B" & I).Value

session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB 2:SAPLMGD1:2001/ctxtMARA-EXTWG").SetFocus

session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB 2:SAPLMGD1:2001/ctxtMARA-EXTWG").caretPosition = 1

session.findById("wnd[0]/tbar[0]/btn[11]").press

session.findById("wnd[0]").sendVKey 0

' ********************** copy from scrip <-

Next

End If

利用Word和Excel批量打印奖励

利用Word和Excel批量打印奖励(推荐好用) 用Word批量打印奖状、证书、成绩单、工资单的方法、 简单分以下四步: 1、创建数据库、主文档 2、打开或创建数据源 3、在主文档中插入合并域 4、将数据源中的数据合并到主文档中 具体操作如下: 如:***同志在2007年陕西省教育技术成果**评比中你制作的《***》被评为*等奖,特发此证,以资鼓励。陕西省教育厅2007年4月24日 其中*号为每个人不同内容,其他都一样。方法是: 第一步:建立数据库 新建一个excel电子表格,将每人姓名、成果类型、成果名称、评定等次,输入表格(注意不要省略表格中的标题行,以免邮件合并时找不到合并域名),保存名为“荣誉证.xls”后即可关闭以备后用。 第二步:建立荣誉证模板 新建一个word文件,输入:***同志在2007年XXX省教育技术成果**评比中你制作的《*******》被评为*等奖,特发此证,以资鼓励。 教育厅2007年4月24日,设计页面大小并打印找准位置,打印一个看排版合适,保存为“荣誉证.doc”(注:*号为要自动填写的内容而定) 第三步:邮件合并 1. 在刚建立的“荣誉证.doc”文件中,选择菜单栏的“视图/工具/邮件合并”,则出现“邮件合并”工具栏要常用工具栏下。 2. 在“邮件合并”工具栏中点击“获取数据”下拉按钮,选择“打开数据源(o)…”,在出现打开刚保存的excel电子表格“荣誉证.xls”,点击“确定”,这时你会发现在工具栏中多了一栏邮件合并工具栏。 4. 把光标置于要插入相应项目的位置如证书上要写的姓名位置,点击“插入域”下拉菜单(下拉菜单中的相应选项与“荣誉证.xls”表格中的标题行是一一对应的如“姓名”),

word和excel用邮件合并实现批量打印(整理)

利用邮件合并功能,通过以Excel文件作为数据源,批量生成word文档,比如批量制作信封、贺卡等。其中OFFICE版本为2003版,操作系统为XP。如操作系统和软件版本为其他版本,均可参考此法予以实现,大同小异。实现的方法有两种,其中第一种方法更好、更简单(大家别看我写的很多,操作起来其实非常简单,1分钟就可以搞定!)。 方法一、 Microsoft Office邮件合并——打印录取通知书操作方法: 第一步:准备数据源 这个数据源可以是Excel工作表也可以是Access文件,也可以是MS SQL Server 数据库。一言蔽之:只要能够被SQL语句操作控制的数据皆可作为数据源。因为邮件合并说白了就是一个数据查询和显示的工作。这里,我以Excel为例。下图是一个Excel工作表文件"DataSource",里面有一个工作簿"录取通知书",工作簿里面有三条数据记录,我们的任务就是把这三条记录按照指定的模板打印成录取通知书。

图一 第二步:准备模板 模板文件就是即将输出的界面模板,这里我以Word文档为例。 下图是一个模板文件"Template",就是录取通知书的大致样子(大标题和序列号我就省了啊)。 图二 第三步:邮件合并 打开模板文件template.doc,从"工具"菜单中依次选择"信函和邮件" >> "显示邮件合并工具栏",完毕之后工具栏上会多出一栏,就是邮件合并工具栏,如图,红色矩形框中的就是邮件合并工具栏。

图三 下面,step by step,follow me: 1.设置数据源 点击邮件合并工具栏上"设置数据源"的按钮(图三中第二个)(有些软件上的是“打开数据源”),选择"DataSource.xls"文件,单击打开,然后会再弹出一个"选择表格"的窗口,要求指定使用哪个工作簿,因为只有一个工作簿"录取通知书",直接点击确定,完成数据源设置。

如何在EXCEL表格中批量插入对应图片

如何在EXCEL表格中批量插入对应图片学生照片用身份证号命名后,核对是个麻烦事儿,有了这个表格就直观多了。 制作过程如下: 1、粘贴学生信息、输入公式并向下填充 在D2单元格输入公式(复制下面的公式并粘贴到D2单元格中): ="

" 公式含意:在该单元格中插入来自d盘:\学生照片文件夹中\C2单元格中数值(身份证号命名的).jpg图片

向下填充 2、在D盘根目录中新建一个名为:学生照片的文件夹,并把全校按身份证号码命名的学生图片复制其中。 这些图片最好批量转尺寸为120×150。太小看不清,太大查看起来不便。 3、打开剪贴板 4、选择公式区域(最好分几次进行,每次不超过200格),并复制到剪贴板(见下图窗口右边)。 (因在公式的状态下,很多操作是不能正常进行的,这一步的目的就是留数据除公式。)

5、点击剪贴板中刚复制的数据,把这些数据又粘贴回来(见下图鼠标箭头)。 6、把公式列中的@替换为"(半角单引号)

7、再选择公式区并将数据复制进剪贴板(不要把第一行学生图片这格选进去) 8、将复制到剪贴板的公式重新粘贴回来(见图中鼠标箭头)。 9、调整行高 行高设为:100-120,视图片大小而定。

10、完成表格进行核对 学生名和照片对应表就做好了,如有张冠李戴,及时更改。 学籍照片处理方法 见:全国中小学学籍平台学生照片处理方法图文详解(按住Ctrl 键用鼠标点击上面的红字打开对应网页) 照片命名成身份证号 见:照片批量命名成身份证号的方法图文详解 (按住Ctrl 键用鼠标点击上面的红字打开对应网页)

利用word和excel,批量打印证书

利用word和excel,批量打印证书 在Office中,先建立两个文档:一个WORD包括所有文件共有内容的主文档(比如未填写的信封等)和一个包括变化信息的数据源EXCEL(填写的收件人、发件人、邮编等),然后使用邮件合并功能在主文档中插入变化的信息,合成后的文件用户可以保存为Word文档,可以打印出来,也可以以邮件形式发出去。 邮件合并的应用领域: 1、批量打印信封:按统一的格式,将电子表格中的邮编、收件人地址和收件人打印出来。 2、批量打印信件:主要是从电子表格中调用收件人,换一下称呼,信件内容基本固定不变。 3、批量打印请柬:同上2。 4、批量打印工资条:从电子表格调用数据。 5、批量打印个人简历:从电子表格中调用不同字段数据,每人一页,对应不同信息。 6、批量打印学生成绩单:从电子表格成绩中取出个人信息,并设置评语字段,编写不同评语。 7、批量打印各类获奖证书:在电子表格中设置姓名、获奖名称和等资,在WORD中设置打印格式,可以打印众多证书。 8、批量打印准考证、明信片、信封等个人报表。 总之,只要有数据源(电子表格、数据库)等,只要是一个标准的二维数表,就可以很方便的按一个记录一页的方式从WROD中用邮件合并功能打印出来! 实例—三好学生荣誉证书:(本例用邮件合并向导完成,还可以用邮件合并工具完成) 证书内容如:我校梁作明同学被评为2009年度三好学生光荣称号 我校吴加敏同学被评为2009年度三好学生光荣称号。。。。。。 1、创建电子表格,保存为“荣誉证书.xls”。如下图所示: 2、打开Microsoft Office Word 2003,在“工具”菜单中选择“信函与邮件”-- >“邮件合并”,出现邮件合并向导。如下图所示:

Excel表格应用中大量数据快速录入技巧

Excel表格应用中大量数据快速录入技巧 高考及其他许多类似工作有大量的数据需要录入,为了便于汇总,各校必须统一格式,所以一般由上级主管部门设计好一个数据库,再辅之以一个录入的界面。这样虽然操作起来非常直观,但丝毫不能减轻数据录入的工作量(除了自动编号之外)。仔细研究一下他们的数据库和数据构成,我们就可以放弃那些漂亮的录入界面,在EXCEL2000中轻松完成。 一、表头的设计处理 首先要自己设计一张工作表。表头上的表项设置,必须建立在对上级部门数据库的认真剖析的基础之上。如果是传统的DBF数据库,当然可以直接在EXCEL中进行相关操作;如果是ACCESS数据库,经过适当处理,我们也可以在EXCEL2000中对它进行操作。实在不行,那就逐项记录下所要录入的数据项,自己设计一个表头也是可以的。表头最好用汉字注明,这样可以避免录入时出现张冠李戴的情形,需要时再适当调整一下就行了。 二、“查找、替换”和“自动更正”功能的巧用 再来分析一下这些数据:在“毕业学校”一栏,有好多个学生毕业于同一所学校,重复输入效率肯定不高。对,有了,先自己定义几个字符来临时替代一下各个学校的名称(如用“4 Z”代表“枣阳市第四中学”,等全部完成后再按“Ctrl+H”把所有的“4Z”全部替换为“枣阳市第四中学”不就行了? [提示:尽量用一些简单好记、易录入、不会与其他内容发生混淆的字符来执行替换,不过不要光顾了简单好记,否则,你用“4”代替“枣阳市第四中学”试试,做了“全部替换”后可别骂人哟!] 如果你连Ctrl+H这一步也想省去,你可以试试EXCEL的“自动更正”功能。使用自动更正功能,可以简化用户对大量重复数据的输入操作,例如可以将上面的“4z”定义更正为“枣阳市第四中学”,定义的方法是: 1.从工具菜单中选择“自动更正”,打开自动更正对话框。 2.在“替换”框中输入数据,如:“4z”,在“替换为”框中输入数据,如:“枣阳市第四中学”,单击“添加”,再单击“确定”。 之后,只需在单元格中输入“4z”两字,即会自动更正为“枣阳市第四中学”。 三、输入法的自动切换 在输入数据时,一张工作表中同时包含汉字、英文字母和数字,那么对于不同的单元格,输入时不断地切换输入方式也是人为增加的录入工作量。只要作一下预处理,便可以使Ex cel对不同类型的单元格实现输入法的自动切换。

excel表格批量打印的教程

竭诚为您提供优质文档/双击可除excel表格批量打印的教程 篇一:用word和excel批量打印技巧 用word和excel批量打印技巧 20xx-09-08 woRd邮件合并打印excel数据制作大量奖证、奖状、准考证、成绩单、明信片、信封等个人报表 在学校工作,难免会遇到各种证书打印。有很多证书是同类的,比如运行会的奖证,三好学生等等。这不全县三教征文结果出来了,一看550人的庞大队伍,这要是写或者人工排版,不定要划好长时间,对我这样的懒人来说宁肯划一天时间来研究一下偷懒的办法来完成半天的工作的,好在这次划的时间并没那么久,欣喜之余拿出来分享一下! 设计思路:建立两个文件一个excel电子表格存放姓名和获奖等次等信息,一个woRd文件作为证书样版调用电子表格中的姓名和获奖信息,保持打印的格式一致! 采用的方法:woRd的邮件合并功能 实施步骤: 1、创建电子表格,因为我的电子表格是从长阳教育网

下载的结果公示,已包含了获奖者的姓名、论文题目以及获奖等次等信息,因为要调用,标题以及不规范的非获奖记录行都要删除整理一下如图所示。 以上只列出了sheet1工作表部分名单,在整理过程中要删除空白行或无意义的行,以免出错!以上文件整理好以后以book1为名保存到桌面备用。 2、打开woRd20xx文字处理软件(2000版可能有所不一样),在“工具”菜单中选择----“信函与邮件”菜单----“邮件合并” 3、出现邮件合并向导: 选择右边向导中的“信函”复选框,下一步“正在启动文档”----默认的“当前文档”----下一步“选取候选人”----默认“使用现有列表”----下一步:“撰写信件”,到这里一直是下一步,到了这里,要选取数据源了,出来一个浏览窗口。 找到桌面上这个备用的电子表格文件,“打开”: 因为我们整理的数据在工作表1中,所以就选择第一个表: 选择表1所,我们要打印的数据出来了,“全选”后确定。这个数据表就可以使用了,下面接着讲如何安排这些数据到woRd中。 4、设计wRod中的格式:

宏命令将图片批量替换成统一大小

宏命令将图片批量替换成统一大小 步骤: 1.点击【文件】-【选项】,在弹出的窗口中选择【自定义功能区】,勾选开发工具选项后,点击【确定】,如下图: 2.会在菜单上方出现开发工具的相关功能菜单,选择【开发工具】,点击【宏】,如下图: 3.点击【宏】后,弹出提示框,在宏名处输入宏名“setpicsize”点击创建按钮,如下图:

4.在弹出的VBA窗口中将如下代码复制到其中,如下图: 统一替换图片大小的VBA代码如下(单引号后面的内容为备注): '1.改变图片大于14.5cm的宽度 '注:高跟宽的数值单位为px,而word中的单位为cm(1px约等于0.0352cm) Sub setpicsize() Dim j '计数图片个数 For j = 1 To ActiveDocument.InlineShapes.Count '文件中图片总个数,图片类型为inlineshapes picheight = ActiveDocument.InlineShapes(j).Height '高度赋值 picwidth = ActiveDocument.InlineShapes(j).Width '宽度赋值 If (ActiveDocument.InlineShapes(j).Width > 375 And ActiveDocument.InlineShapes(j).Width < 415) Then '判断图片宽度范围,将宽度大于13.23cm的图片,小于14.68的图片统一缩放

ActiveDocument.InlineShapes(j).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '图片居中 ActiveDocument.InlineShapes(j).Width = 411 '设置宽度为411px,约14.5cm ActiveDocument.InlineShapes(j).Height = picheight * (411 / picwidth) '设置图片高度,根据设置的宽度值等比例缩放图片高度 ElseIf (ActiveDocument.InlineShapes(j).Width > 417) Then '判断图片宽度范围,将宽度大于14.7cm的图片统一缩放 ActiveDocument.InlineShapes(j).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '图片居中 ActiveDocument.InlineShapes(j).Width = 411 '设置宽度为411px,约14.5cm ActiveDocument.InlineShapes(j).Height = picheight * (411 / picwidth) '设置图片高度,根据设置的宽度值等比例缩放图片高度 End If Next j End Sub 注意: (1)修改图片尺寸时,代码运行前需要根据实际情况进行修改图片尺寸的大小范围限制代码,图中标注处所示 (2)修改图片尺寸时,需计算修改的图片的宽高值,因为图片的高跟宽的数值单位为px,而word中的单位为cm,根据每台电脑不同的分辨率,1px约等于0.0352cm (3)图片替换之前文档最好先保存副本,因为运行宏后的文档无法撤销操作,如果操作错误,只能通过关闭文档时,选择不保存后,重新打开 (4)代码可用英文状态下的单上引号进行备注,删掉不影响代码的运行 (5)如修改图片尺寸的代码无需修改,可直接在点击【宏】后,在弹出提示框中选择宏名“setpicsize”,点击运行按钮进行操作 (6)一次性修改的文档中图片过多时,文档会未响应一小段时间,请耐心等待即可5.点击运行按钮,运行统一替换图片尺寸代码

批量修改图片代码

word中批量修改图片大小 方法一: 这部分要说的是把word中的所有图片修改成固定的并且相同的长和宽! 1、打开word,工具-宏-宏(或者直接按Alt+F8)进入宏的界面,如下面所示,输入一个宏名,宏名自己起,能记住就行! 2、宏名起好了,单击“创建”进入Visual Basic 编辑器,输入如下代码并保存 代码如下: Sub setpicsize() '设置图片大小 Dim n ' 图片个数 On Error Resume Next ' 忽略错误 For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型图片ActiveDocument.InlineShapes(n).Height = 400 '设置图片高度为 400px ActiveDocument.InlineShapes(n).Width = 300 '设置图片宽度 300px Next n For n = 1 To ActiveDocument.Shapes.Count 'Shapes 类型图片 ActiveDocument.Shapes(n).Height = 400 '设置图片高度为 400px ActiveDocument.Shapes(n).Width = 300 '设置图片宽度 300px Next n End Sub 3、返回word,工具-宏-宏(或者直接按Alt+F8),再次进入宏的界面,选择刚才编辑好的宏,并单击“运行”按钮,就可以了!(图片多时,可能会花一些时间)

方法二: 1、在word中按alt+f11组合键,进入VBA模式 2、在左边的工程资源管理器中找到你的word文档,在其上右键/添加/模块 3、把下面代码复制,粘贴进去. 4、更改数值, 改一下宽度和高度数值(10),点运行(类似播放按钮.)或f5,即可设置文档中全部图片 代码如下: Sub Macro() Mywidth=10 ‘10为图片宽度(厘米) Myheigth=10 ‘10为图片高度(厘米) For Each iShape In ActiveDocument.InlineShapes iShape.Height = 28.345 * Myheigth iShape.Width = 28.345 * Mywidth Next iShape End Sub word批量修改图片大小——按比例缩放篇 这部分要说的是把word中的所有图片按比例缩放! 具体操作同上,只是代码部分稍做修改,代码如下: 代码如下: Sub setpicsize() '设置图片大小

在Excel中批量插入固定大小的图片

在Excel中如何快速地批量插入固定大小的图片?步骤如下: 一.编辑图片 1.新建一个文件夹,把要插入到Excel的全部图片放进去。 2.用PS,ACDSEE等工具,尽量把图片设置为正方形,或者统一方向的长方形(比如都是宽短高长)最好 是大小一致,比例相当。 3.把图片的文件名改为有意义的文件名,比如产品编号,人物名字,建筑物名称等。 二.批量获取文件名 这一步不是必须的,但当你面对几十个,甚至几百个,几千个图片的时候,这一步就很有用了,大大省去在Excel中输入图片文件名的时间。步骤: 1.用ACDSEE打开其中一个图片,然后在图片上双击,进入文件管理模式,如图: 2.点击“工具”-“数据库”-“导出”-“生成文件列表”。

3.这时会弹出一个文本文件“Folder-Contents”,可以看到图片文件名,大小,格式等等的信息都在里面了。 把列表前面的文字都删除(------ 及前面的文件,空格都删除),变成如下图:

4.点击“文件”-“另存为”,把文件保存到方便找到的目录(比如本例中E:\Temp\目录下)。 5.启动Excel,新建空白工作簿,然后在“文件”- “打开”- “浏览”找到Folder-Content存放的目录,选择打开文 件类型为“文本文件”(必须,不让看不到这个文本文件): 6.选中Folder-Content.txt,打开,这时会弹出一个“文本导入向导”,直接点击“完成“:

7.这时会自动生成一个Excel文档,列A就是全部图片的文件名了,然后把这个文档另存为“型号.xls”:

三.批量插入固定大小的图片 1.打开需要插入图片的Excel文档,比如本例的产品信息表,把在“型号.xls”中的图片文件名全部复制,粘 贴到产品信息表的“型号”列: 2.从上图可以看出,图片文件名是从表格A2开始的,所以,在图片列D2中输入:

Word编程宏批量修改图片大小

word批量修改图片大小 借助word的宏功能可以很好完成这一任务,无论word里有多少图片,很容易就在一瞬间搞定.。文档里面有几百张图片,规格都不一样,堆在文档里面很难看。为美化文档,将图片规范化,都设置成425x320像素大小。手工修改每张图片很费时间也费鼠标,所以,你得好好看看以下如何做了。 打开word,按下Alt+F8,出现宏界面,为新建的宏取名为AdjustPicWidthAndHeight 点击编辑按钮,输入下面红色字体标出的内容 Sub AdjustPicWidthAndHeight() ' ' AdvertisePublishAs 宏 ' 将广告发布导出为 PDF 和 XPS 'Sub setpicsize() '设置图片大小

Dim n '图片个数 On Error Resume Next '忽略错误 For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片ActiveDocument.InlineShapes(n).LockAspectRatio = msoFalse '不锁定图片的纵横比 ActiveDocument.InlineShapes(n).Height = 320 '设置图片高度为 320px ActiveDocument.InlineShapes(n).Width = 425 '设置图片宽度 425px Next n For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片 ActiveDocument.InlineShapes(n).LockAspectRatio = msoFalse '不锁定图片的纵横比ActiveDocument.Shapes(n).Height = 320 '设置图片高度为 320px ActiveDocument.Shapes(n).Width = 425 '设置图片宽度 425px Next n End Sub word批量修改图片大小——固定长宽篇 这部分要说的是把word中的所有图片修改成固定的并且相同的长和宽! 1、打开word,工具-宏-宏(或者直接按Alt+F8)进入宏的界面,如下面所示,输入一个宏名,宏名自己起,能记住就行!

如何用Excel VBA批量打印文件

如何用Excel VBA批量打印文件 有时候一个文件夹内有很多Excel文件,几十个,上百个,如果一个个的打开,然后再打印,显然重复劳动,效率低下。 能不能用Excel VBA批量打印同一文件夹内的所有文件? 答案当然是肯定的。 假设我们的桌面上有个名叫“材料”的文件夹,内有上百个EXCEL文件需要打印 打开EXCEL文件→Visual Basic编辑器(Alt+F11)→插入→模块 以下是VBA代码 ********************************************************************* ** Sub test() Set rrr = CreateObject("Scripting.FileSystemObject") Set r = rrr.GetFolder("C:\Documents and Settings\Administrator\桌面\材料") For Each i In r.Files Workbooks.Open Filename:=("C:\Documents and Settings\Administrator\桌面\材料\" + https://www.doczj.com/doc/9113755421.html, + "") ActiveSheet.PageSetup.PrintArea = "" ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ActiveWindow.Close saveChanges:=False Next End Sub ********************************************************************* ************** 注释:ActiveSheet.PageSetup.PrintArea = "" 的目的是“取消打印区域” 因为有时候这些excel文件并不是我们自己写得,可能已经被别人设定好了打印区域,并保存在文件中,这是我们所看不到的。(好比方所,其中某个文件的主人由于需要,设定从Excel表的5行到第10行为打印区域,但是我们并看不到。当我们点击“文件”-->打印,把材料打印出来时,才发现打印的并不是整张表格,而是别人设定的打印区域,这显然不符合我们的要求,所以我们要取消打印区域)。 附:如果先是存在多级目录,大文件夹套很多小文件夹,小文件夹里装的才是文件,怎么办?

EXCEL表格如何批量导入图片

EXCEL表格如何批量导入图片 1、准备好图片放入一个文件夹(图片名字需与表格的名称一致,为*.jpg) 2、右击图片属性,图片路径,红框处,复制出来: G:\图片\ 3、回到表格,拷贝红框的文字,复制-粘贴到*.txt文档,转为纯文字格式,txt 文档另存为11(名字任意)。

表格里的图片名称(图片名字需与表格的名称一致,为*.jpg),我习惯用货号命名图片,如下图:

4、做好导入图片公式的txt格式文档。 ①把“商品编码”删掉。

②表格要求导入的图片不多的话,可以直接用复制-粘贴,图片名称前后是一样的。如果是上百个,上千个图片需要导入,那就要借助word的力量。 word每行行首、行末添加相同的指定字符 行首:替换^p为^pA(A为你要插入的字符)

行末:替换^p为A^p(A为你要插入的字符) 图片名称前的文字:

③把txt的货号复制到word文档,替换行首,行末 第一行的行首没有替换到,把最后一行的剪切上去即可,手动调整后(注意每一行的图片名称不能调换顺序)

替换行末: 点击全部替换。

④替换好后发现引号是全角引号,必须要转为英文状态下的半角引号。 ⑤复制文档1容,粘贴到11.txt文档

EXCEL高级数据处理技巧之2

上海蓝草企业管理咨询有限公司 EXCEL高级数据处理技巧 ——教练式课程带你一步一步轻松快捷地工作 【课程背景】 EXCEL在我们的日常工作中,可以说每天都在用,不管你是行政、文秘、销售、还是HR、财务……可以说各个公司,各个部门都离不开EXCEL的统计分析…… 走遍全国各地、使用EXCEL的各个公司的工作人员,几乎每个人的EXCEL都是使用很复杂的方式在繁杂的数据海洋中进行着艰辛的工作着…… 您是否还在这样的工作着: 1.移动数据几乎都会使用剪切命令的,应该是用一键移动的,朋友们! 2.把数据求和写在数据的下一行或者下一列中,几乎都是使用Sum函数,之后再去 拖拽填充公式,应该是用一键求和的,朋友们! 3.大数据的选择几乎都是拖动选择的,其实是可以一键选择的,朋友们! 4.发给别人填写的数据,收回来后会面目全非,其实数据是可以保护的,朋友们…… 诸如此类,你是否还在被这些问题所困扰,那你就应该参加本次课程的学习,让你的EXCEL数据统计分析轻松自如,从此妈妈再也不用担心我的工作…… 【课程目标】 快速快捷高效的EXCEL数据分析统计方法,从此再也不用加班加点,提高工作效率,减小工作压力,轻松快乐的工作和生活…… 【课程特点】 中央电视台特邀Office高级讲师带你快速快捷高效的学习EXCEL技巧; 20多年工作经验的讲师为您现场答疑解惑; 教练式教学:边讲边练习; 实例讲解:实用的案例; 必须自己记录讲解知识点; 最好是Office2010以上的EXCEL版本…… 【课程收益】 快速整理为规范的EXCEL数据--便于后期的统计分析 一键操作--快速高效的EXCEL技巧 实用函数--工作中常用的案例诠释EXCEL函数的强大功能 数据透视表--快速高效的大数据统计分析技巧 专业的商务图表--让你的图表会说话…… 【课程对象】 不限制,使用EXCEL工作的人员…… 【课程时间】2天12小时(建议3天18小时效果好) 【课程内容】具体讲课内容多少、深度,根据现场学员具体需求及基础情况而定

用宏批量调整word中图片版式大小方向

Sub 图片方向()..................................................... Sub 图片对齐() Application.ScreenUpdating = False '关闭屏幕更新 Dim n On Error Resume Next ActiveDocument.Shapes(n).Select orizontalPosition = _ wdRelativeHorizontalPositionMargin wdRelativeVerticalPositionMargin Next Application.ScreenUpdating = True '恢复屏幕更新 End Sub Sub 图片大小() On Error Resume Next Dim mywidth Dim myheight Application.ScreenUpdating = False '关闭屏幕更新 mywidth = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,宽度根据输入的高度数值自动调整;", Title:="请输入图片宽度", Default:="0")) * 28.35 myheight = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,高度根据输入的宽度数值自动调整;", Title:="请输入图片高度", Default:="0")) * 28.35 '------------------------------------------------------------------ '调整嵌入式图形 Dim pic As InlineShape For Each pic In ActiveDocument.InlineShapes If mywidth = "0" Then

用word和excel批量打印技巧

用word和excel批量打印技巧 2010-09-08 WORD邮件合并打印EXCEL数据制作大量奖证、奖状、准考证、成绩单、明信片、信封等个人报表 在学校工作,难免会遇到各种证书打印。有很多证书是同类的,比如运行会的奖证,三好学生等等。这不全县三教征文结果出来了,一看550人的庞大队伍,这要是写或者人工排版,不定要划好长时间,对我这样的懒人来说宁肯划一天时间来研究一下偷懒的办法来完成半天的工作的,好在这次划的时间并没那么久,欣喜之余拿出来分享一下! 设计思路:建立两个文件一个Excel电子表格存放姓名和获奖等次等信息,一个WORD文件作为证书样版调用电子表格中的姓名和获奖信息,保持打印的格式一致! 采用的方法:WORD的邮件合并功能 实施步骤: 1、创建电子表格,因为我的电子表格是从长阳教育网下载的结果公示,已包含了获奖者的姓名、论文题目以及获奖等次等信息,因为要调用,标题以及不规范的非获奖记录行都要删除整理一下如图所示。 以上只列出了Sheet1工作表部分名单,在整理过程中要删除空白行或无意义的行,以免出错!以上文件整理好以后以boo k1为名保存到桌面备用。 2、打开WORD2003文字处理软件(2000版可能有所不一样),在“工具”菜单中选择----“信函与邮件”菜单----“邮件合并”

3、出现邮件合并向导: 选择右边向导中的“信函”复选框,下一步“正在启动文档”----默认的“当前文档”----下一步“选取候选人”----默认“使用现有列表”----下一步:“撰写信件”,到这里一直是下一步,到了这里,要选取数据源了,出来一个浏览窗口。

找到桌面上这个备用的电子表格文件,“打开”: 因为我们整理的数据在工作表1中,所以就选择第一个表:

用宏批量调整中图片版式大小方向

Sub 图片对齐() .................................... 错误!未指定书签。 Sub 图片大小().................................... 错误!未指定书签。Sub 浮于文字上方()................................ 错误!未指定书签。Sub 浮于文字上方()................................ 错误!未指定书签。Sub 连续()........................................ 错误!未指定书签。Sub 版式转换().................................... 错误!未指定书签。Sub 图片方向().................................... 错误!未指定书签。Sub 图片对齐() Application.ScreenUpdating = False '关闭屏幕更新 Dim n On Error Resume Next ActiveDocument.Shapes(n).Select orizontalPosition = _ wdRelativeHorizontalPositionMargin wdRelativeVerticalPositionMargin Next Application.ScreenUpdating = True '恢复屏幕更新 End Sub Sub 图片大小() On Error Resume Next Dim mywidth Dim myheight Application.ScreenUpdating = False '关闭屏幕更新 mywidth = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,宽度根据输入的高度数值自动调整;", Title:="请输入图片宽度", Default:="0")) * 28.35 myheight = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,高度根据输入的宽度数值自动调整;", Title:="请输入图片高度", Default:="0")) * 28.35 '------------------------------------------------------------------ '调整嵌入式图形 Dim pic As InlineShape For Each pic In ActiveDocument.InlineShapes If mywidth = "0" Then

用Excel和VBA轻松实现桌签批量打印

用Excel和VBA轻松实现桌签批量打印 用Excel来制作桌面标签(以下简称桌签)确实是一个比较新颖的方法,不过要是同时制作很多桌签也还是比较费时的。那么今天笔者就介绍一种用VBA轻松实现桌签批量打印的方法。 一、准备工作 ⒈启动Excel2003(其他单元格也可以),执行“工具→自定义”命令,打开“自定义”对话框。在“命令”标签中,选中“类别”下面的“工具”选项,然后在“命令”下面找到“照相机”选项,并将它拖到工具栏合适位置上。 ⒉在Sheet1工作表中(最好将文档取名保存一下),仿照图1的样式,在B列相应的单元格中输入需要打印桌签的名称,并在A1中输入一个名称。 ⒊在C1单元格(也可以是其他单元格)中输入公式:=COUNTA(B:B),用于统计所要打印的桌签数目。 ⒋选中A1单元格,设置字符居中对齐,并设置一种适合用作桌签的字体(如魏碑体)。 二、制作桌签 ⒈选中A1单元格,单击一下工具栏上的“照相机”按钮,再切换到“Sheet2”工作表中,单击一下鼠标,即可得到一张A1单元格的照片 小贴士:这种照片不同于普通图片,它与A1单元格中的数据建立了链接,随A1单元格中的字符改变而改变。

⒉选中“照片”,执行“格式→图片”命令,打开“设置图片格式”对话框,在“颜色与线条”标签中,将“线条”设置为“无线条颜色”,点击“确定”返回。 ⒊根据桌签底座的尺寸,将“照片”调整至合适大小,并将它定位到页面合适位置上。 ⒋将上述“照片”复制一份,在“设置图片格式”对话框的“大小”标签中,将它“旋转→180°”,并将它定位到页面合适位置上(效果参见图2)。 三、编制宏程序 ⒈按下“Alt+F11”组合键,打开“Visual Basic编辑器”(图3),在右侧的“工程资源管理器”区域中,选中“VBAProject(桌签.xls)”选项,执行“插入→模块”命令,插入一个模块(模块1)。 ⒉双击“模块1”,展开右侧的代码编辑区,将下述代码输入其中:Sub 桌签() '建立一个名称为“桌签”的宏。 For i = 1 To Sheet1.Cells(1, 3) '设立一个循环:开始值为1,结束值为Sheet1工作表C3单元格内的值(即桌签数目)。 Sheet1.Select '选中Sheet1工作表。 Cells(1, 1).V alue = Cells(i, 2).V alue '依次将B列的桌签字符调入A1单元格中。 Columns("A:A").Select '选中A列。 Selection.Columns.AutoFit '将A列设置为“最合适的列宽”,这样让字符不同的桌签自动适应“照片”的大小。

如何在EXCEL表格中批量插入对应图片-更新

如何在EXCEL表格中批量插入对应图片-最新更新

————————————————————————————————作者:————————————————————————————————日期:

如何在EXCEL表格中批量插入对应图片学生照片用身份证号命名后,核对是个麻烦事儿,有了这个表格就直观多了。 制作过程如下: 1、粘贴学生信息、输入公式并向下填充 在D2单元格输入公式(复制下面的公式并粘贴到D2单元格中): ="

" 公式含意:在该单元格中插入来自d盘:\学生照片文件夹中\C2单元格中数值(身份证号命名的).jpg图片

向下填充 2、在D盘根目录中新建一个名为:学生照片的文件夹,并把全校按身份证号码命名的学生图片复制其中。 这些图片最好批量转尺寸为120×150。太小看不清,太大查看起来不便。 3、打开剪贴板 4、选择公式区域(最好分几次进行,每次不超过200格),并复制到剪贴板(见下图窗口右边)。 (因在公式的状态下,很多操作是不能正常进行的,这一步的目的就是留数据除公式。)

5、点击剪贴板中刚复制的数据,把这些数据又粘贴回来(见下图鼠标箭头)。 6、把公式列中的@替换为"(半角单引号)

7、再选择公式区并将数据复制进剪贴板 8、选择“Unicode文本”粘贴 ①.复制(学生照片列数据)→粘贴(到记事本) ②.复制(刚才粘贴到记事本中的数据)→(回到Excel工作表学生照片列)右键→选择性粘贴 ③.选“Unicode文本”粘贴回Excel工作表→确定 (如果数据不到记事本中过一下,“选择性粘贴”窗口中就不会出现“Unicode文本”粘贴选项,这一步很重要)

批量删除WORD文档中的图片 宏+替换

批量删除WORD文档中的图片 有时要一次性删除某个Word文档中所有图片.一张一张地寻找图片并按下DEL键删除真是麻烦死了,这时你有一般两种方法可以选择: 一、 可以让“查找和替换”功能帮你的忙,在Word中同时按下“Ctrl+H”键打开“查找和替换”对话框,点击“替换”标签中的“更多”按钮,再选择“特殊格式→图形”项,这时会在“查找内容”中自动输入“^g”,最后直接按下“全部替换”按钮即可彻底删除所有图片。(想要知道高级的查找替换功能,可以搜索word的通配符、正则表达式等内容) 二、用宏程序删除WORD图片 有时在word中使用第一种方法不能奏效,可以使用宏代码的方式进行删除,如果一次无法删除完全,可以多运行几遍。代码如下: Sub Macro1() For Each ShapeRange In ActiveDocument.Shapes ShapeRange.Delete Next ShapeRange End Sub 附: Word通配符查找详解(Wildcards) 通配符使用规则如下: 任意单个字符 键入? 例如,s?t 可查找“sat”和“set”。 任意字符串 键入* 例如,s*d 可查找“sad”和“started”。 单词的开头 键入< 例如,<(inter) 查找“interesting”和“intercept”,但不查找“splintered”。 单词的结尾 键入> 例如,(in)>查找“in”和“within”,但不查找“interesting”。 指定字符之一 键入[ ] 例如,w[io]n 查找“win”和“won”。

指定范围内任意单个字符 键入[-] 例如,[r-t]ight 查找“right”和“sight”。必须用升序来表示该范围。 中括号内指定字符范围以外的任意单个字符 键入[!x-z] 例如,t[!a-m]ck 查找“tock”和“tuck”,但不查找“tack”和“tick”。 n 个重复的前一字符或表达式 键入{n} 例如,fe{2}d 查找“feed”,但不查找“fed”。 至少n 个前一字符或表达式 键入{n,} 例如,fe{1,}d 查找“fed”和“feed”。 n 到m 个前一字符或表达式 键入{n,m} 例如,10{1,3} 查找“10”、“100”和“1000”。 一个以上的前一字符或表达式 键入@ 例如,lo@t 查找“lot”和“loot”。 特殊意义的字符 键入\ 例如,f[\?]t 查找“f?t” ( ) 对查询结果没有影响,是一个替换时分组的概念 例子: 用\2 \1替换(John) (Smith),得到结果Smith John 即\1代表John,\2代表Smith

巧用Word和Excel批量打印成绩单

龙源期刊网 https://www.doczj.com/doc/9113755421.html, 巧用Word和Excel批量打印成绩单 作者:何浩平潘伟珍 来源:《发明与创新.教育信息化》2016年第02期 在学校教育教学工作中,教师经常要面对大量的成绩通知单、奖状、准考证等的打印工作,大部分老师的做法是将姓名、成绩、获奖等级等栏目空着,待证书打印完毕后,再在空白处手工填写证书信息;或者是在每张证书的电子文档上逐一更改姓名、成绩等信息后再进行打印。这两种方法都费时费力,在繁杂而单调的重复劳动中,还容易出差错。如何解决这个问题呢?其实,利用Word和Excel结合,只需四步就可以轻松完成批量打印成绩单的任务。具体步骤如下(以学生素质报告单的打印为例)。 第一步:用Word建立通知单模板 根据学校要求,用Word文档设计出学生素质报告单的表格,暂且命名为“学生素质报告 单模板.doc”(如图1)。 第二步:用Excel录入学生成绩表 用Excel文档将学生成绩等信息录入学生成绩表。成绩表第1行只设标题(即字段名),成绩表中不要表头,也不能出现合并单元格;将每个学生的素质报告单所要填的不同数据或文字(如综合评价等)填入此表。暂命名为“学生素质报告单数据表.xls”(如图2)。 第三步:关联数据表与通知单模板 打开“学生素质报告单模板.doc”,依次选择Word菜单中的“视图\工具栏\邮件合并”(Word2007以上版本可以在菜单中直接选择“邮件/开始邮件合并”),选择“信函”,点击“打开数据源”(Word2007以上版本为“选择收件人”),在弹出对话框中找到并选择我们建立的“学 生素质报告单数据表.xls”,打开后如果有多个工作簿的话,选择成绩表对应的工作簿,如“成绩单”,并按“确定”。将鼠标定位到需要插入学生姓名的位置,单击“邮件合并”工具栏中的“插入域”(Word2007以上版本为“其他项目”),在弹出对话框中选择“姓名”,并点击“插入”“关闭”。这样,学生姓名位置就设置完毕。用同样的方法完成学生成绩、评价等设置,完成后效果如图3。 第四步:合并到新文档,进行适当调整后打印 在工具栏中选择“查看合并数据”(Word2007以上版本为“预览信函”),这时,点击前后 箭头即可对比查看合并数据前后的效果,如不满意,可对模板进行适当的调整。当调整合适后选择“合并到新文档”,即可生成一个包含所有通知单记录的Word文档,这时剩下的打印工作就很简单了。

相关主题
文本预览
相关文档 最新文档