首页/新闻资讯/正文详情

ExcelVBA转WordVBA:对象模型对照与避坑指南

发布时间:2026/11/3 19:44:28 来源:云帆数科 栏目:资讯中心
ExcelVBA转WordVBA:对象模型对照与避坑指南
简介这份PDF教程面向已具备VBA基础、希望深入掌握Office自动化的办公人员与开发者聚焦ExcelVBA与WordVBA第4季内容系统讲解对象、集合、属性与方法等核心概念帮助读者从零散语法走向对文档内容的精细操控。资源包仅含1个PDF文件大小约1.92MB便于随身查阅与打印研读。教程以Word对象模型为主线逐一剖析Application、Documents与Document的引用方式对比Excel中ActiveWorkbook、ThisWorkbook的用法深入Range与Selection对象的区域选取、文本获取及复制粘贴操作并梳理Characters、Words、Sentences、Paragraphs等集合的索引访问技巧同时延伸至Tables、Columns、Rows、Cells等表格对象配合字体颜色、加粗等属性设置与Activate、Copy、Cut、Paste等方法示例形成完整知识链条。目前已有848人学习适合希望编写自定义宏、提升办公效率、打通Excel与Word双剑合璧自动化流程的读者参考。1. 从 Excel 思维切进 WordVBA为什么你的第一行代码总是报错很多人从 ExcelVBA 转 WordVBA第一反应是把Cells(5,2)那套直接搬过来结果一运行就翻车——Word 里根本没有Cells(5,2)这种写法Cells在 Word 里是表格单元格集合脱离Table对象单独用会直接抛错。这份《ExcelVBA与WordVBA教程第4季.pdf》解决的正是这个断层它不教你 VBA 语法基础而是把 Word 的对象模型Application、Document、Range、Selection、Paragraphs 等和 Excel 的对应物一一对照着讲让你用已有的 ExcelVBA 直觉去理解 Word 的集合与对象层级。适合已经能写 Excel 宏、但一碰 Word 就不知道从哪个对象下手的从业者尤其是要做批量文档处理、报告自动生成、格式清洗这类活的人。2. 对象模型对照把 Excel 的 Workbook 思维翻译成 Word 的 Document 层级WordVBA 难上手核心不在语法而在对象模型的层级关系和 Excel 不一样。Excel 里你习惯Workbook → Worksheet → RangeWord 里是Application → Document → Range/Selection中间少了“工作表”这一层但多了Range和Selection两个容易混淆的入口。这份教程第 4 季开篇就用“集合好比多个团队每个团队都是一个对象”这种类比把Documents、Paragraphs、Characters的集合关系讲透下面按我实际拆解的路径重新组织一遍。2.1 Application 与 Documents先搞清楚你操作的是“软件”还是“文档”Application代表 Word 软件本身Documents是所有打开文档的集合ActiveDocument是当前活动文档ThisDocument是承载 VBA 代码的那个文档。这四个东西的区分是后面所有代码的地基。教程里给了一张很实用的对照ActiveDocument、ThisDocument、Documents(文档名)相当于 ExcelVBA 里的ActiveWorkSheet、ThisWorkSheet、WorkSheets(工作表名)。这个类比一出来选型就清楚了——批量处理用Documents遍历操作当前界面用ActiveDocument代码写在哪份文档里就用ThisDocument。我一般会在模块顶部先做一次显式引用避免ActiveDocument在切换窗口时指向漂移Sub 指定当前文档() Dim 文档 As Document 方法1显式走 Application语义最清楚 Set 文档 Word.Application.ActiveDocument 方法2简写代码量少但依赖当前上下文 Set 文档 ActiveDocument MsgBox 文档.FullName End Sub这段代码的逻辑是Set 文档 ...把文档对象赋给变量后后续所有操作都走这个变量不再依赖“当前活动”这个隐式状态。参数上没什么可调的关键是养成“先 Set 再操作”的习惯——教程里反复强调ActiveDocument可以简写但简写的前提是你确定当前焦点没跑偏。实际跑批量任务时我见过太多因为用户中途点了另一个文档导致ActiveDocument指向错误、结果写错文件的案例这就是血泪经验。Application下还有一批只读属性值得先摸一遍教程附 1 列了完整清单我挑几个高频的Application.Documents.Count返回打开文档数Application.Version返回版本号Application.Path返回程序路径Application.System.FreeDiskSpace返回磁盘可用空间。这些在写健壮脚本时很有用比如批量打印前先判断磁盘空间、或者根据版本号走不同分支。2.2 Range 与 Selection两个入口的边界决定代码稳不稳Range和Selection是 WordVBA 里最容易混的一对。教程的定义很干脆Range代表文档中的一段区域用Range(开始下标, 结束下标前一个字符)构造Selection代表当前所选内容跟用户鼠标操作强相关。Range(2,5)取的是从下标 2 开始到下标 5 之前那个字符也就是第 2、3、4 三个字符——这个“结束下标前一个字符”的语义是新手第一个坑教程用“跟着孙兴华学习VBA第四季”这句 16 个字符的示例把下标算得明明白白。两者的核心差别在于Range是“无界面”的你构造它、操作它用户看不到光标动Selection是“有界面”的操作它会移动光标、改变用户当前选中。批量处理一律用Range需要模拟用户交互或依赖当前光标位置时才用Selection。教程里Selection.Activate、Selection.Copy、Selection.Cut、Selection.Paste、Selection.Select这五个方法就是围绕“当前选中”设计的。Sub 在文档开头插入文本并打印() Dim 文档 As Document Dim 范围或位置 As Range Set 文档 ActiveDocument 构造一个零长度 Range定位到文档最开头 Set 范围或位置 文档.Range(Start:0, End:0) With 范围或位置 .InsertBefore 报告标题 .Font.Name Arial .Font.Size 30 .InsertParagraphAfter End With 文档.PrintOut End Sub逻辑说明Range(Start:0, End:0)构造一个起点终点重合的空 Range相当于在文档开头插了一个“插入点”InsertBefore在这个点之前塞文本InsertParagraphAfter补一个段落标记。参数上Start和End都是字符下标从 0 开始Font.Name和Font.Size是 Range 的字体属性改的是这段 Range 覆盖的文本格式。这里用With块是为了避免反复写范围或位置.但注意With里改的是 Range 的格式不是整个文档——这是和Selection操作最容易搞混的地方。2.3 Characters、Words、Sentences、Paragraphs四级文本集合的索引方式Word 把文本切成四级集合Characters字符、Words词、Sentences句、Paragraphs段。教程明确说前三个返回Range对象Paragraphs返回Paragraph对象。这个区别很关键Document.Paragraphs(1).Range.Text取第一段文字注意中间多了.Range——因为Paragraphs(1)是段落对象不是 Range要拿文字得再取它的 Range。教程里那个“把数字变红色粗体”的遍历例子是理解Characters集合的最好素材Sub 将数字变成红色粗体() Dim i As Long Dim 每个字符 As Range 遍历全部字符Count 是当前文档字符总数 For i 1 To Word.Application.ActiveDocument.Characters.Count Set 每个字符 Word.Application.ActiveDocument.Characters(i) If IsNumeric(每个字符.Text) Then 每个字符.Bold True 每个字符.Font.ColorIndex wdGreen End If Next End Sub逻辑说明Characters.Count拿总数Characters(i)按索引取第 i 个字符的 RangeIsNumeric判断是不是数字是就改Bold和Font.ColorIndex。参数上wdGreen是 Word 内置颜色常量教程里还提到wdGreen01这种写法是笔误实际常量就是wdGreen。这段代码跑大文档会慢因为逐字符访问 COM 接口开销大实际项目里我一般先用Range.Find定位再批量改但作为理解集合索引的教学例子它足够直观。Words和Sentences的索引方式同理但要注意 Word 对“词”和“句”的切分规则跟中文习惯不完全一致中文文档里Words.Count的数值可能和你肉眼数的对不上这是 Word 分词逻辑决定的不是代码错。Paragraphs则稳定得多Document.Paragraphs.Count返回段落数遍历段落做格式清洗是最常见的批量任务。3. 文档生命周期操作新建、打开、保存、关闭的参数怎么设对象模型搞清楚之后落地第一件事就是文档的增删改查。教程附 2 和附 3 把Documents.Add、Documents.Open、ActiveDocument.Save、ActiveDocument.SaveAs2、ActiveDocument.Close这几个方法的参数列得很全但参数多不代表都要设关键是知道哪几个会改变行为。3.1 新建与另存Add 和 SaveAs2 的配合Documents.Add往Documents集合里加一个空文档SaveAs2指定路径另存。教程给的两段代码对比很能说明问题Sub 新建保存另存() 新建文档 Documents.Add 保存到原位置新文档没位置会弹框 ActiveDocument.Save 另存为必须指定完整路径 ActiveDocument.SaveAs2 c:\1.docx 关闭 ActiveDocument.Close End Sub Sub 新建并另存() 链式调用新建后立刻另存 Documents.Add.SaveAs2 c:\1.docx ActiveDocument.Close End Sub逻辑说明第一段里Save对新建文档会弹保存对话框因为新文档没有路径第二段用Documents.Add.SaveAs2链式调用一步到位指定路径避免弹框。参数上SaveAs2的第一个参数是完整文件名含路径教程用的是c:\1.docx这种绝对路径实际项目里我一般用ThisDocument.Path \ 文件名拼相对路径避免硬编码盘符。注意SaveAs2是 Word 2010 之后的方法老版本用SaveAs教程没强调版本差异但这是实际部署时会遇到的兼容问题。3.2 Open 的关键参数ReadOnly、PasswordDocument、VisibleDocuments.Open的参数表很长教程列了FileName、ConfirmConversions、ReadOnly、AddToRecentFiles、PasswordDocument、PasswordTemplate、Revert、WritePasswordDocument、Format、Encoding、Visible、OpenAndRepair等十几个。实际高频的就四个FileName必填ReadOnly控制只读打开PasswordDocument传打开密码Visible控制是否可见窗口。Sub 打开文档示例() Dim 文档 As Document 只读打开不加入最近文件列表窗口可见 Set 文档 Documents.Open( _ FileName:c:\1.docx, _ ReadOnly:True, _ AddToRecentFiles:False, _ Visible:True) 在光标位置插入文本 Selection.TypeText 示例文本 不保存关闭 文档.Close savechanges:wdDoNotSaveChanges End Sub逻辑说明ReadOnly:True防止误改源文件AddToRecentFiles:False避免批量打开时污染最近文件列表Visible:True让用户能看到处理过程批量后台处理时设False提速。Close的savechanges参数接受三个常量wdDoNotSaveChanges不保存、wdSaveChanges自动保存、wdPromptToSaveChanges提示用户。教程附的关闭操作表把这三个常量的数值也列了0、-1、-2实际写代码用常量名更可读。批量关闭所有文档不保存的写法教程也给了Sub 关闭所有文档不保存() Dim doc As Document For Each doc In Documents doc.Close savechanges:wdDoNotSaveChanges Next doc End Sub这里有个坑遍历Documents集合时关闭文档会改变集合大小For Each在某些情况下会漏掉文档。稳妥做法是倒序For i Documents.Count To 1 Step -1教程没提这点但实际跑批量关闭时我踩过——正序关到一半集合索引错位剩下几个文档没关掉。3.3 打印PrintOut 的 Range 参数与批量打印文件夹打印这块教程给了三个递进的例子打印当前页、打印前 N 页或指定页、打印文件夹下所有 docx。PrintOut的Range参数接受wdPrintAllDocument整个文档、wdPrintCurrentPage当前页、wdPrintFromTo指定范围配From和To、wdPrintRangeOfPages指定页码列表配Pages、wdPrintSelection当前选中。Sub 打印指定页面() Dim 文档 As Document Set 文档 ActiveDocument 打印第 1 到第 3 页 文档.PrintOut Range:wdPrintFromTo, From:1, To:3 打印第 1、3、6 页 文档.PrintOut Range:wdPrintRangeOfPages, Pages:1,3,6 End Sub逻辑说明wdPrintFromTo配From和To字符串参数wdPrintRangeOfPages配Pages逗号分隔列表。注意From和To是字符串不是数字传数字会类型不匹配。批量打印文件夹的写法用Dir循环Sub 打印当前文件夹下所有docx() Dim 文件 As String 文件 Dir(*.docx) Do While 文件 Word.Application.PrintOut FileName:文件 文件 Dir() Loop End Sub这里Dir(*.docx)只匹配当前目录不含子目录PrintOut FileName:文件直接传文件名Word 会在当前目录找。实际项目里如果文件在别的路径得先ChDir或传完整路径。教程这段代码注释里写“第二季笔记15课文件”说明它是从实际课程素材里抠出来的文件名匹配模式按需改*.doc或*.rtf即可。4. 避坑与排查WordVBA 里那些让脚本静默失败的细节这一章是我拆这份教程时对照自己踩过的坑整理的教程本身偏重“正确写法”但实际跑起来失败往往不是语法错而是对象状态和隐式行为。4.1 现象ActiveDocument指向了错误的文档原因ActiveDocument依赖当前焦点窗口用户中途点击别的文档、或者代码里Documents.Open后没显式Activate焦点就漂了。解决所有操作前先Set 文档 Documents(目标名.docx)或Set 文档 Documents.Open(...)拿显式引用后续全走变量不碰ActiveDocument。教程 2.1 节其实给了这个思路但没强调“为什么必须这样”实际项目里这是最高频的翻车点。4.2 现象Range(2,5)取出来的字符数对不上原因Range的End参数是“结束下标前一个字符”不是包含式。Range(2,5)取下标 2、3、4 三个字符不是 2 到 5 四个。解决记牢“左闭右开”语义或者干脆用Range.Start和Range.End属性读出来验证。教程用 16 字符示例算过一遍但新手看一遍容易忘我一般会在代码里加Debug.Print 范围.Text先打印确认再往下写。4.3 现象逐字符遍历大文档卡死原因Characters(i)每次访问都走 COM 接口几千字符的文档遍历一遍要好几秒几万字符直接卡到无响应。解决改用Range.Find批量定位或者先把Document.Range.Text一次性读成字符串在内存里处理处理完再写回。教程的逐字符例子是教学用的生产环境别照搬。4.4 现象Documents.Close后集合索引错乱原因For Each遍历集合时关闭元素会改变集合大小迭代器行为不确定。解决倒序For i Documents.Count To 1 Step -1关闭或者先把要关的文档名收集到数组再逐个关。教程 3.2 节的批量关闭示例用的是For Each小规模没问题文档多了会漏。4.5 现象SaveAs2在老版本 Word 报“方法不存在”原因SaveAs2是 Word 2010 引入的2007 及更早只有SaveAs。解决用Application.Version判断版本号走分支或者统一用SaveAs参数兼容性更好但少了部分新格式支持。教程没提版本差异部署到混合版本环境时这是必查项。5. 进阶验证用 Application 属性做脚本自检与批量任务前置检查教程附 1 那串Application属性清单很多人扫一眼就过了但实际写健壮脚本时它们是“后悔药”。我现在的习惯是任何批量任务开跑前先跑一段自检把环境状态打出来出问题能快速定位是环境还是逻辑。Sub 环境自检() Dim 信息 As String 信息 Word版本: Application.Version vbCrLf _ 打开文档数: Application.Documents.Count vbCrLf _ 可用字体数: Application.FontNames.Count vbCrLf _ 磁盘可用空间: Application.System.FreeDiskSpace 字节 vbCrLf _ 最近文档数: Application.RecentFiles.Count Debug.Print 信息 批量打印前判断磁盘空间低于阈值就中止 If Application.System.FreeDiskSpace 104857600 Then MsgBox 磁盘空间不足 100MB中止批量任务 Exit Sub End If End Sub逻辑说明Application.Version返回版本号字符串用来走兼容分支Documents.Count确认当前打开文档数符合预期FontNames.Count在批量改字体前确认目标字体可用System.FreeDiskSpace返回字节数批量另存前判断空间RecentFiles.Count在需要清理最近列表时用。参数上FreeDiskSpace是只读属性单位字节阈值按任务规模调我一般留 100MB 余量。再进一步Application.Build返回编译序号Application.UserName返回当前用户名Application.Path返回程序路径——这几个在写日志、区分运行环境时有用。教程附 1 里还有Application.MacroContainer.FullName返回当前文档名含路径、Application.NormalTemplate.FullName返回标准模板位置这两个在排查“宏为什么在别的机器上找不到模板”时是直接线索。验证脚本是否按预期改了文档我一般用“改前改后对比”的土办法跑之前Debug.Print ActiveDocument.Range.Text打一份全文跑完再打一份肉眼比对关键段落。教程里ActiveDocument.Content返回文档全部内容Document.Range.Text也是全文两者在取全文时等价但Content是 Range 对象可以直接接格式操作Range.Text是字符串只能读——这个区别在写验证代码时要注意别拿字符串去调.Font。从那以后我每次写 WordVBA 批量脚本都强制先跑一遍环境自检、再拿一份小样本文档试跑、确认Range下标和集合索引没算错最后才上全量。这份教程第 4 季的价值不在于教你新语法而在于把 Word 对象模型的层级和 Excel 的对应关系摆清楚让你少走“用 Excel 思维写 Word 代码”的弯路。希望帮到你。本文还有配套的精品资源点击获取

相关推荐

极狐阿尔法S5:AI高性能纯电轿跑核心技术解析
极狐阿尔法S5:AI高性能纯电轿跑核心技术解析

1. 极狐阿尔法S5产品定位解析作为北汽新能源旗下高端品牌极狐的最新力作,阿尔法S5以"AI高性能宽体轿跑"的差异化定位切入20万级纯电市场。这款基于IMC智能模块化架构打造的车型,在预售阶段就打出11.28万元的补贴后起售价(较官方指导… · 2026/11/3 19:44:28

SpringBoot连接Docker中MySQL的常见问题与解决方案
SpringBoot连接Docker中MySQL的常见问题与解决方案

1. 问题现象与初步排查最近在本地开发SpringBoot项目时,尝试连接Docker容器中的MySQL数据库遇到了连接失败的问题。具体表现为启动应用后控制台持续报错"Communications link failure",经过多次重试后最终抛出连接超时异常。这种情况在开发环境… · 2026/11/3 19:44:28

2026年软件测试趋势:AI与云原生测试实践指南
2026年软件测试趋势:AI与云原生测试实践指南

1. 2026年软件测试行业趋势前瞻 2026年的软件测试领域正在经历一场由技术变革驱动的深刻转型。作为从业15年的测试架构师,我观察到几个关键趋势正在重塑行业格局:首先是AI赋能的测试自动化工具正在从简单的脚本录制回放,进化到具备自主生成测… · 2026/11/3 19:43:28

PS证件照尺寸设置原理:厘米、DPI与像素的精准换算
PS证件照尺寸设置原理:厘米、DPI与像素的精准换算

1. 项目概述:一张合规证件照,远不止“拉个框”那么简单在某高校教务处协助学生批量处理毕业材料时,我连续三天被同一个问题堵在工位上:“老师,我的一寸照为什么上传系统总提示尺寸不合格?”——不是像素不够… · 2026/11/3 20:18:49

GPT-4与ChatGPT应用开发入门:从大语言模型原理到对话程序实战
GPT-4与ChatGPT应用开发入门:从大语言模型原理到对话程序实战

简介:这份PDF为OReilly于2024年推出的《Developing Apps with GPT-4 and ChatGPT》正式版电子书,作者为Olivier Caelen与Marie-Alice Blete,面向具备一定编程基础、希望把大模型能力落地为实际产品的开发者与技术人员。全书从GPT-4与ChatGPT的… · 2026/11/3 20:18:49

单设备多会话与账号互斥的架构设计与实现
单设备多会话与账号互斥的架构设计与实现

1. 单设备多会话与多账号互斥的核心挑战在现代化应用架构中,单设备多会话与多账号互斥的需求越来越普遍。想象一下这样的场景:一台医院自助服务终端需要同时处理多个患者的挂号、缴费操作,每个患者登录后需要保持独立的会话状态,但… · 2026/11/3 20:18:49

C语言底层考点:sizeof、数组退化与内存布局
C语言底层考点:sizeof、数组退化与内存布局

简介:这是一份面向C语言笔试与面试备考者的经典试题合集,聚焦指针、内存管理与关键字等高频考点,适合正在准备校招、实习笔试或希望夯实C语言底层基础的中初级开发者查漏补缺。资源包共1个文件,为doc文档,整体约122KB&… · 2026/11/3 20:18:49

Leetcode链表专题:从基础操作到经典题目解析
Leetcode链表专题:从基础操作到经典题目解析

1. Leetcode链表专题:从基础操作到经典题目解析链表作为数据结构中的重要组成部分,一直是算法面试中的高频考点。最近在Leetcode周赛430中,链表相关题目再次成为讨论热点。今天我将带大家深入解析Leetcode链表部分的三个经典题目:… · 2026/11/3 20:18:49

macOS Node.js 多版本管理:nvm 配置与环境变量避坑指南
macOS Node.js 多版本管理:nvm 配置与环境变量避坑指南

1. 为什么 macOS 上的 Node.js 环境总在“反复重装”?——nvm 是唯一解法你有没有过这样的经历:在 macOS 上装完 Node.js,跑几个项目没问题,可一换项目版本,或者某天终端突然报错command not found: node,再… · 2026/11/3 20:17:49

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码