版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE2026年VBA进阶路线图9阶段,自动化上手────────────────编程技术·实用文档2026年·11803字
目录────────────────一、VBA入门要学哪些基础:从录宏到对象模型的最短路径一、VBA入门要学哪些基础:从录宏到对象模型的最短路径二、VBA进阶路线图的分层与里程碑:入门、基础、进阶、高级怎么判定三、Range与Worksheet对象怎么写:常用属性方法清单与无选择操作四、循环与字典的加速套路:数组读写、去重匹配与对比方案五、错误处理与调试提速:OnError、断点、立即窗口与性能计时六、文件批量处理实战:批量合并CSV与自动生成日报的模板工程七、与SQL和PowerQuery联动:ADO连接、参数化查询与刷新管线八、表单交互与加载项发布:UserForm设计、权限限制与分发升级九、VBA与Office脚本有什么区别:本地VBA与云端脚本的取舍二、VBA进阶路线图的分层与里程碑:入门、基础、进阶、高级怎么判定三、Range与Worksheet对象怎么写:常用属性方法清单与无选择操作四、循环与字典的加速套路:数组读写、去重匹配与对比方案五、错误处理与调试提速:OnError、断点、立即窗口与性能计时六、文件批量处理实战:批量合并CSV与自动生成日报的模板工程七、与SQL和PowerQuery联动:ADO连接、参数化查询与刷新管线八、表单交互与加载项发布:UserForm设计、权限限制与分发升级九、Office脚本有什么区别:本地云端脚本的取舍────────────────
你每周在Excel里重复二十几个动作,复制、筛选、透视、导出,光是周五就得加班到九点,真实又无奈。做数据的人都懂。我的身份很简单:连续8年在一线写VBA自动化,服务过制造、零售、医疗三大行业,做过200多个项目。踩坑无数。我把8年经验浓缩成9个阶段的VBA进阶路线图和一个能落地的自动化样板工程,两周见效。照着做,每周至少省3小时,全年省下150小时,这就是你的加薪筹码。这份“VBA进阶路线图”会给你明确的技能清单、练习任务、判断标准和避坑提醒。一、VBA入门要学哪些基础:从录宏到对象模型的最短路径很多人卡在了第一步。不是不会写代码,而是不知道写少一点,做对一点。先讲一个实打实的优化案例。很短。很猛。场景与数据去年上海一位财务同事C,每周要从“原始数据”复制到“日报模板”,再做一次筛选导出。录宏版本跑一次要75秒,手动要8分钟。后来她把录宏改写为对象模型+数组读写,单次耗时降到9秒,准确率提升到100%。省下89%。这不是玄学。这是方法。可立即执行的操作步骤1.打开Excel→文件→选项→自定义功能区,勾选“开发工具”。2.开发工具→宏安全性→宏设置选择“禁用所有宏并发出通知”,信任中心设置→勾选“信任对VBA工程对象模型的访问”。3.开发工具→录制宏→在同一工作簿里做一次你日常的整理汇编流程→停止录制。4.Alt+F11打开VBE→模块里找到刚才的宏→运行一次计时。5.把录宏代码里的Select、Activate、Selection全部去掉,改为对象链式写法。示例对比如下。录宏代码(慢且脆弱)SubCopySlowSheets("原始数据").SelectRange("A1").SelectSelection.CurrentRegion.SelectSelection.CopySheets("日报").SelectRange("A1").SelectActiveSheet.PasteEndSub对象模型改写(避免Select)SubCopyFastDimsrcAsWorksheet,dstAsWorksheetSetsrc=ThisWorkbook.Worksheets("原始数据")Setdst=ThisWorkbook.Worksheets("日报")src.Range("A1").CurrentRegion.Copydst.Range("A1")EndSub进一步加速(数组读写)SubCopyFastestDimsrcAsWorksheet,dstAsWorksheet,arr,tgtAsRangeSetsrc=ThisWorkbook.Worksheets("原始数据")Setdst=ThisWorkbook.Worksheets("日报")arr=src.Range("A1").CurrentRegion.ValueSettgt=dst.Range("A1").Resize(UBound(arr,1),UBound(arr,2))tgt.Value=arrEndSub加入计时器定位收益SubCopyBenchmarkDimtAsDoublet=TimerCallCopyFastestDebug.Print"耗时秒数:",Round(Timer-t,3)EndSub避坑提醒录宏是最短学习路径,但不是最优执行路径。别迷信。真的别迷信。千万不要在长流程里频繁使用Select和Activate,否则在隐藏窗口或多工作簿场景会错表、错位。还有一点,录宏里经常把当前选择当作上下文,迁移到别的模板就炸。把所有对象都用变量承接,再操作,风险会小一半。上手判断标准当你能把录宏生成的20行代码改成8行对象写法,并且通过计时证明耗时下降40%以上的时候,说明你已经完成入门阶段。恭喜。你会感觉明显的轻松。但是,更关键的是你得知道接下来怎么走。该学哪些对象,如何判断速度瓶颈,批量文件如何处理。这才是省时的根。下方目录给你完整的路标。目录一、VBA入门要学哪些基础:从录宏到对象模型的最短路径二、VBA进阶路线图的分层与里程碑:入门、基础、进阶、高级怎么判定三、Range与Worksheet对象怎么写:常用属性方法清单与无选择操作四、循环与字典的加速套路:数组读写、去重匹配与对比方案五、错误处理与调试提速:OnError、断点、立即窗口与性能计时六、文件批量处理实战:批量合并CSV与自动生成日报的模板工程七、与SQL和PowerQuery联动:ADO连接、参数化查询与刷新管线八、表单交互与加载项发布:UserForm设计、权限限制与分发升级九、VBA与Office脚本有什么区别:本地VBA与云端脚本的取舍二、VBA进阶路线图的分层与里程碑:入门、基础、进阶、高级怎么判定先把地图给清楚。方向对了,速度才有意义。别急,我会给到练习与验收标准。分级与标准(阶梯表)入门层你能录宏、改录宏,知道对象模型的父子关系,能写无Select的整理汇编。单任务耗时较手动降低30%。练习任务:把一个两表复制流程改写成数组读写,加入计时输出。判断标准:3次运行稳定无错,且平均耗时<10秒。基础层掌握Range、Worksheet、Workbook常用属性方法,能写For、ForEach、Do循环;会用Scripting.Dictionary做去重与映射。练习任务:根据客户清单匹配价格表,输出对账结果与差异数。判断标准:1万行数据在30秒内完成,差异匹配准确率100%。进阶层会Ado连接外部源、PowerQuery刷新,能做批量处理工程结构化,具备错误处理与日志。能定位性能瓶颈。练习任务:批量合并某文件夹下100个CSV,生成两张透视表并自动刷新。判断标准:100个文件共20万行在60秒内处理完,异常文件写入日志。高级层具备UserForm交互设计与权限控制,能打包为加载项,支持版本升级与配置文件读取;了解Office脚本与VBA的选择。练习任务:做一个“一键生成日报”的加载项,支持部门管理员角色审核。判断标准:1键触发,失败自恢复,配置无硬编码,10人团队稳定使用一月。执行时间表(4周里程碑)第1周:录宏改写、对象模型与数组读写,完成入门层练习。第2周:掌握字典与循环,做1万行匹配去重。很关键。第3周:搭建批量处理工程,接PowerQuery或ADO,完成日志框架。第4周:加UserForm与权限,打包成加载项,评估是否迁移Office脚本(这个我后面还会详细说)。计算模型(评估投入产出)月节省时间=单次自动化耗时节省×月执行次数自动化ROI(月)=月节省时间×你的时薪÷本月开发耗时示例:单次节省6分钟,每天跑2次,月20天,则月节省=6×2×20=240分钟=4小时。若你时薪100元,开发花10小时,首月ROI=4×100÷10=40%。不多。真的不多。但第二个月直接翻倍。避坑提醒别试图一口气到高级层。先拿入门层的可见收益,再滚动升级。否则你会被需求拖着跑,心累且容易放弃。先小胜,再扩张。很稳。三、Range与Worksheet对象怎么写:常用属性方法清单与无选择操作对象,是VBA的关键字也是捷径。学会这两个对象,你就拿到钥匙。简单又好用。场景与数据深圳一家消费电子公司B的PMC,每天把供应商回传的Excel汇总到一张“来料跟进表”。改写前用选择复制,每天要30分钟。换成对象写法后,单次5分钟,日均节省25分钟,月省8小时以上。变化明显。时间就是钱。必会属性与方法清单Range常用:Value、CurrentRegion、Resize、Offset、Find、SpecialCells、ClearContentsWorksheet常用:UsedRange、Range、ListObjects、Calculate、Protect、Unprotect关键写法要点1.永远用对象链。ThisWorkbook.Worksheets("表").Range("A1").CurrentRegion2.所有中间对象落地为变量。便于复用与调试。3.使用With块减少重复。无选择操作示例复制指定列到目标表同名列SubCopyColsDimwsSrcAsWorksheet,wsDstAsWorksheetDimarr,iAsLong,mapAsObjectSetwsSrc=ThisWorkbook.Worksheets("供应商回传")SetwsDst=ThisWorkbook.Worksheets("来料跟进")Setmap=CreateObject("Scripting.Dictionary")'源列到目标列映射map("料号")="PartNo"map("数量")="Qty"map("到货日")="ETA"Fori=0Tomap.Count-1wsDst.Range(map.Items(i)&"1").EntireColumn.Value=_wsSrc.Range(map.Keys(i)&"1").EntireColumn.ValueNextEndSub立即执行的三步1.在VBE工具→参考中勾选MicrosoftScriptingRuntime(可选,或用CreateObject)。2.把靶表头命名规范化,避免中文空格与重复。3.用Debug.Print输出关键对象地址,确保指向正确的Sheet。避坑提醒UsedRange不是总是“有用的区域”。会粘连历史格式,导致数组尺寸巨大。清空尾部格式后再用,或者直接用CurrentRegion起步,再配合Find定位最后一行。还有一个坑,Range("A"&Rows.Count).End(xlUp)在表为空时会回到A1048576,先判断是否为空。别偷懒。判断标准当你能在一段100行以内的代码里,只用对象链和数组完成三张表之间的复制更新,不出现一次Select/Activate时,你已经进入基础层。继续往前。四、循环与字典的加速套路:数组读写、去重匹配与对比方案说句不好听的,光靠For循环跑单元格,你会慢到怀疑人生。读写切换次数才是杀手。降低I/O,速度才飞起来。原理简单。收益巨大。对比方案(文字版对比表)方案A:WorksheetFunction.VLookup成本低,上手快;单元格级计算,10万行易卡顿;适合小数据、临时一次性。方案B:Match+Index配合数组成本中,较快;需要两次查找与构建索引;适合中等数据与较复杂映射。方案C:Scripting.Dictionary成本中,代码量可控;内存查找O(1),稳且快;适合大数据、去重、并表。方案D:PowerQuery成本中偏高,图形化配置;处理量大时稳定,复用强;适合可视化管线和跨源。案例与数据2026年一家乐器电商的订单对账,20万行销售明细对10万行价格表。VLOOKUP版耗时17分钟,字典版耗时48秒,节省95%。服务器风扇都安静了。你会笑的。字典匹配示例SubMapPriceDimwsSAsWorksheet,wsPAsWorksheet,arrS,arrP,iAsLongDimdictAsObject,lastSAsLong,lastPAsLongSetwsS=Sheets("销售明细")SetwsP=Sheets("价格表")lastS=wsS.Cells(wsS.Rows.Count,"A").End(xlUp).RowlastP=wsP.Cells(wsP.Rows.Count,"A").End(xlUp).RowarrS=wsS.Range("A2:E"&lastS).ValuearrP=wsP.Range("A2:B"&lastP).ValueSetdict=CreateObject("Scripting.Dictionary")Fori=1ToUBound(arrP,1)IfNotdict.Exists(arrP(i,1))Thendict(arrP(i,1))=arrP(i,2)NextFori=1ToUBound(arrS,1)Ifdict.Exists(arrS(i,1))ThenarrS(i,5)=dict(arrS(i,1))ElsearrS(i,5)="未匹配"EndIfNextwsS.Range("A2:E"&lastS).Value=arrSEndSub步骤拆解1.用一次性读取,把源表和映射表全部读入内存数组。2.用字典建立键值对,避免重复键覆盖时加判断。3.循环只在内存里跑,最后一次性回写。避坑提醒键的类型必须统一。文本和数字的“00123”与123在字典里是两种生物,匹配不上。统一用CStr或CLng再存字典。再者,数组回写必须匹配目标区域尺寸,缺一列就报错,先用UBound检查。别硬写。判断标准当你能用数组+字典把10万行匹配在60秒内完成,并且给出未匹配清单与原因统计时,恭喜进入进阶层的门槛。速度会让你上瘾。五、错误处理与调试提速:OnError、断点、立即窗口与性能计时错误不可怕。不可怕的是你不知道错在哪。看不到。才焦虑。场景与数据广州一家外包团队,做了个批量改名脚本,偶尔会把扩展名删掉。加上错误捕获与日志后,错误率从每周3次降到0,定位时间从半天降到5分钟以内。管理层满意。团队也轻松。可立即执行的操作步骤1.在每个公共入口Sub里设置统一的错误处理框架。2.用Debug.Print输出关键参数到立即窗口,复杂时写日志到TXT。3.用Timer或GetTickCount进行分段计时,定位慢点。错误框架示例SubMainOnErrorGoToEHDimtAsDouble:t=TimerDebug.Print"开始:",NowCallDoWorkDebug.Print"耗时:",Round(Timer-t,3)ExitSubEH:Debug.Print"错误号:",Err.Number,"描述:",Err.DescriptionCallLogError("Main",Err.Number,Err.Description)ResumeNextEndSub日志函数简单实现SubLogError(procAsString,noAsLong,msgAsString)DimfAsInteger:f=FreeFileOpenThisWorkbook.Path&"\error.log"ForAppendAs#fPrint#f,Now&"|"&proc&"|"&no&"|"&msgClose#fEndSub断点与监视在关键行按F9打断点,F8单步跟踪。把变量拖到监视窗口查看值变化。用立即窗口输入?变量名实时查看结果。很直接。避坑提醒不要在所有地方都用ResumeNext。你会把错误活生生吞掉,后面更难查。入口处兜底,内部过程就近抛出或转换成返回值,层层向上。还有,日志文件一定要追加模式,不要覆盖。判断标准当你能复现客户现场的问题,并在10分钟内通过断点和日志定位到行号与数据上下文,说明你掌握了调试的核心。下一步是放到实战。六、文件批量处理实战:批量合并CSV与自动生成日报的模板工程坦白讲,文件批处理是最容易见效也最容易踩坑的模块。路径、编码、分隔符,个个要命。稳定了,你就是部门的救火队。很硬核。案例与数据2026年3月,杭州一家跨境电商团队要每天合并100个供应商csv,合并后做两张透视表推送到SharePoint。首次上线耗时从人工的2小时下降到脚本的3分40秒,稳定运行一季。返工率0。奖金也稳了。合并CSV核心代码SubMergeCSVDimfsoAsObject,folderAsObject,fileAsObjectDimwsAsWorksheet,rowAsLong,arr,tAsDoubleSetws=Sheets("汇总")Setfso=CreateObject("Scripting.FileSystemObject")Setfolder=fso.GetFolder(ThisWorkbook.Path&"\csv")t=Timer:row=2ws.Range("A1:E1").Value=Array("供应商","日期","SKU","数量","金额")ForEachfileInfolder.FilesIfLCase(fso.GetExtensionName(file.Path))="csv"Thenarr=ReadCsvToArray(file.Path,",")row=WriteArray(ws,arr,row,file.Name)EndIfNextDebug.Print"合并耗时:",Round(Timer-t,2),"秒"EndSubFunctionReadCsvToArray(pAsString,sepAsString)DimfAsInteger,sAsString,lines,iAsLong,jAsLong,colsf=FreeFile:OpenpForInputAs#fs=Input(LOF(f),f):Close#flines=Split(s,vbCrLf)ReDimarr(1ToUBound(lines),1To5)Fori=1ToUBound(lines)IfLen(lines(i))>0Thencols=Split(lines(i),sep)Forj=0To4arr(i,j+1)=cols(j)NextEndIfNextReadCsvToArray=arrEndFunctionFunctionWriteArray(wsAsWorksheet,arr,startRowAsLong,srcAsString)AsLongDimrAsLong,cAsLong,rowsAsLong:rows=UBound(arr,1)Ifrows=0ThenWriteArray=startRow:ExitFunctionWithws.Range("A"&startRow).Resize(rows,5).Value=arrEndWithWriteArray=startRow+rowsEndFunction操作步骤1.在工作簿同级创建csv文件夹,放入若干csv测试文件。2.在VBE插入模块,复制上述过程。3.运行MergeCSV,查看汇总表数据与耗时输出。避坑提醒编码与分隔符是首坑。UTF-8BOM与GBK差一个头,美式逗号与制表符差一位。读入前先用FileSystemObject判断文件大小与扩展名,再尝试分隔符推断。还有,文件名中带日期就能形成元数据,别浪费。很有用。直接对话如果你现在正打算写一个批量合并脚本,那请一定先看完这部分。你会少走两天弯路。判断标准当你能稳定合并100个文件,遇到损坏文件能记录并跳过,整个流程在5分钟内完成,就达标了。再上一个台阶,去接外部数据源吧。七、与SQL和PowerQuery联动:ADO连接、参数化查询与刷新管线数据不只在Excel里。会连库,Excel就不是孤岛。你的脚本会长翅膀。飞得更远。场景与数据上海一家连锁餐饮,门店销售在SQLServer,库存在Oracle,最终汇总到Excel。用ADO参数化把昨日销售拉到模板,PowerQuery负责增量刷新。拉取耗时从手工的30分钟变为脚本的90秒。每天两次,月省18小时以上。省心。ADO连接示例(以SQLServer为例)SubPullSalesDimcnAsObject,rsAsObject,sqlAsString,dtAsString,tAsDoubledt=Format(Date-1,"yyyy-mm-dd")sql="SELECTStoreID,SKU,Qty,AmountFROMdbo.SalesWHERESaleDate=?"t=TimerSetcn=CreateObject("ADODB.Connection")cn.Open"Provider=SQLOLEDB;DataSource=服务器;InitialCatalog=库名;IntegratedSecurity=SSPI;"Setrs=CreateObject("ADODB.Command")Withrs.ActiveConnection=cn.CommandText=sql.CommandType=1.Parameters.Append.CreateParameter("p1",200,1,10,dt)EndWithDimadoRSAsObject:SetadoRS=rs.ExecuteSheets("销售拉取").Range("A2").CopyFromRecordsetadoRScn.CloseDebug.Print"拉取耗时:",Round(Timer-t,2),"秒"EndSubPowerQuery刷新管线1.数据→获取数据→从文件/数据库,按照向导建立查询。2.在PowerQuery编辑器里做好清洗步骤,关闭并上载到表。3.在VBA里调用ThisWorkbook.RefreshAll,并订阅Workbook_SheetChange事件触发刷新。参数化的好处避免SQL注入风险,缓存执行计划更高效,在跨天批跑时稳定性更好。速度也更稳。很香。避坑提醒64位Office与32位驱动的兼容是老大难。别混用。统一位数后,连接字符串要写对。并且,ADO的Command超时默认30秒,大查询需要设置.CommandTimeout=300,否则半路断。被坑过一次就记一辈子。判断标准当你能把一个跨源的数据拉取组装到Excel,并实现一键刷新、失败重试与记录上次成功时间时,你已经完成进阶层的关键能力。下一步是交互与发布。八、表单交互与加载项发布:UserForm设计、权限限制与分发升级自动化不是黑盒。给用户一个好用的入口,体验直接翻倍。能发布,团队就能平稳使用。小而美。案例与数据南京某医药公司质量部,把批次放行报告生成做成了一个UserForm加载项。原先由3人分工,每天1.5小时。上线后由1人操作,单次点击后6分钟生成,月省时约20小时,差错为零。领导拍了桌子夸。真事。UserForm要点输入控件:TextBox、ComboBox、CheckBox数据源:隐藏Sheet或外部配置INI/JSON权限:Windows用户名或部门表限定,按钮状态随角色变化交互设计原则最少输入、默认智能、错误即时提示。按钮少而准。快速上手步骤1.VBE→插入→UserForm,拖放两个ComboBox与一个CommandButton。2.在UserForm_Initialize中加载下拉数据:从Sheet“配置”的命名区域读入。3.点击按钮后调用后台过程生成报告,界面置灰,结束后弹出耗时提示。加载项发布流程(xlam)1.代码组织成模块、类模块与表单,统一入口过程名为Run。2.文件另存为Excel加载宏启用加载项.xlam,放到共享盘或每人本地AddIns。3.Excel→选项→加载项→转到→浏览,选中xlam,勾选启用。4.版本升级采用配置文件读入版本号,若有新版本则提示下载替换。自查清单(发布前)1.是否去除了硬编码路径,统一从ThisWorkbook.Path或配置读取?2.是否加入了错误日志与失败自动回滚?3.是否对按钮操作进行防重入,点击后禁用直到完成?4.是否提供了最小权限角色与管理员角色的差异功能?5.是否在低权限环境下做过一次UAT测试?避坑提醒表单控件的默认Tab顺序常常错乱,录屏时用户会抱怨“跳来跳去”。在UserForm里用View→TabOrder调整。还有,xlam的引用如果勾选了本地COM组件,换到别的电脑就会黄叹号,能用LateBinding就别强引用。稳。判断标准当你能把一个按钮、一张表单、一次拉取、一次导出整合为可发布的加载项,且能让两位同事在无指导下完成操作,就抵达高级层的合格线。离专家不远了。九、Office脚本有什么区别:本地云端脚本的取舍路线图的终点,不是炫技,是选择。场景决定技术。技术服务业务。别反了。文字对比表方案A:本地VBA优点:离Excel对象模型最近,开发迭代快,无需网络即可运行,适合复杂格式与遗留流程。缺点:跨平台性弱(Mac差异大)、代码分发与版本管理需要额外方案、与云生态的集成度低。成本与适用:成本低到中,适合桌面重度Excel团队与对格式要求极高的报表。方案B:OfficeScripts(ExcelforWeb)优点:云端运行、易与PowerAutomate串联、易于SharePoint/OneDrive联动,跨平台更好,权限可控。缺点:对象模型不完全一致,桌面Excel某些特性不可用,调试体验不同,速度受网络与服务限流影响。成本与适用:成本中到高,适合需要云端协作、自动定时任务与多终端访问的组织。方案C:混合架构做数据计算与整形在PowerQuery/OfficeScripts,报表呈现与格式打磨在VBA加载项。两边取长补短。管理稍复杂,但体验最佳。场景与数据2026年苏州一家外贸企业,报价单需要客户在线自助生成,同时内部还要生成带印章的PDF。他们采用混合架构:OfficeScripts负责云端拉取价格与生成草稿,VBA加载项负责格式与盖章。外部客户生成时间约20秒,内部定稿约10秒。全流程从原来的1小时缩到1分钟以内。节省98%。客户满意。取舍建议模型云协作需求强度S(0到1)、格式复杂度F(0到1)、本地IT管控力度L(0到1)。建议指数=S×0.5+F×(-0.3)+L×0.2当建议指数>0.3时,优先考虑OfficeScripts或混合;否则VBA优先。简单。好用。迁移步骤建议1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年中职高分子材料加工工艺(塑料成型)试题及答案
- 安全走楼梯小班
- 交叉作业安全培训
- 企业安全活动简介
- 公司员工财务培训
- 幼儿园进餐安全教育培训
- 拼多多运营基础培训【课件文档】
- 雨课堂学堂在线学堂云《能源电力翻译(华北电力)》单元测试考核答案
- 双告知工作制度
- 合并报工作制度
- 《老年服务礼仪与沟通技巧》全套教学课件
- 公务接待基础培训课件
- 心脑血管幻灯片课件
- 吉林市2024~2025学年度初中毕业年级第一次阶段性教学质量检测 语文(含答案)
- 退役军人法制宣传课课件
- 纺织厂5S管理课件
- 公租房配售管理办法
- 【养猪场污水处理工艺中的初沉池设计案例830字】
- 医嘱规范开具培训课件
- 医疗器械单位岗位职责培训
- T/CSBME 070-2023计算机断层成像(CT)临床图像质量评价
评论
0/150
提交评论