自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

神奇的BI

点滴知识分享

  • 博客(407)
  • 资源 (2)
  • 收藏
  • 关注

原创 使用VBA快速汇总比对数据

这段VBA代码实现了两个工作表数据的比对与汇总功能。通过字典对象高效处理数据,将"202509"和"202510"两张工作表中相同名称的数据进行匹配,并将结果输出到新建工作表中。代码首先读取第一张表数据存入字典,再读取第二张表进行比对更新,最后将汇总结果写入新表。整个过程采用数组处理提高效率,避免了单元格逐个操作,并妥善管理对象资源。输出结果包含三列:名称、第一张表数据和第二张表数据,形成直观的对比视图。

2025-12-31 14:41:27 268

原创 VBA调用Excel多条件筛选快速提取数据

本文演示了一个Excel VBA查询功能实现。代码通过"查询"工作表的A1单元格输入年份,在"明细"工作表中筛选符合条件的数据并显示在"查询"工作表。主要步骤包括:获取输入年份、验证输入有效性、清除原有筛选、设置日期范围筛选条件、清空结果区域、复制筛选结果并恢复数据。该代码实现了按年份筛选数据的功能,并包含完善的输入验证和数据处理机制,确保查询结果准确可靠。

2025-12-31 14:38:50 408

原创 BOM快速拆解

本文介绍了基于VBA的物料需求拆解方法,通过BOM层级结构将生产订单拆分为物料需求清单。代码使用字典对象存储一、二级BOM结构,通过嵌套循环实现:1)根据一级BOM拆解订单需求;2)针对可拆解的物料继续按二级BOM拆解为直接物料。最终输出两个结果表:一级物料需求清单和最终直接物料需求清单,其中无下级结构的物料直接作为最终需求输出。该方法实现了订单需求到具体物料的自动转换,提高了物料计划效率。

2025-11-29 13:07:00 713

原创 使用VBA快速创建动态数据连接

摘要:本文介绍了使用VBA代码动态创建Excel数据连接的方法。通过自定义过程CreateDataConn,可以自动获取工作表中数据区域的范围,并利用Workbooks(...).Connections.Add2方法建立连接。该方法通过解析地址字符串,将工作簿、工作表和数据范围分离后传递给连接参数,实现了数据连接的自动化创建。示例代码展示了如何调用该过程为"Data.xlsx"工作簿中的"2025Q3"工作表创建名为"SalesData"的数据连接

2025-11-29 13:05:01 126

原创 快速创建Word箱单(2/2)

本文介绍了使用VBA将Excel表格数据批量导出到Word的方法。针对包含箱号、数量和型号三列的数据表,程序可实现:设置微软雅黑40号字并居中;自动分页显示每组数据;处理多型号(逗号分隔)情况。核心步骤包括:读取Excel数据、创建Word文档、拼接文本段落、添加分页符占位符、执行替换操作并保存文档。最终生成的Word文件以时间命名,保存在Excel文件所在目录。该方案可实现高效、规范的文档导出需求。

2025-10-29 12:35:36 468 1

原创 快速创建Word箱单(1/2)

本文介绍了一种利用VBA将Excel表格数据批量导出到Word的方法。该方法针对包含箱号、数量、型号三列的Excel表格进行转换: 通过VBA代码自动创建Word文档,设置微软雅黑40号字居中格式 每页第一行为空行,每组数据独立分页显示 自动拆分逗号分隔的多个型号项,单独生成记录 最终生成以时间命名的.docx文件,保存在Excel文件所在目录 代码采用Word后期绑定方式,包含数据处理、格式设置、分页控制等功能模块,实现自动化高效导出。

2025-10-29 12:31:49 579

原创 如何获取用户右击的Excel单元格位置

本文介绍了Excel VBA中Worksheet_BeforeRightClick事件的使用方法。当用户右击单元格时,默认会显示选中区域地址,而非实际点击的单元格地址。通过调用Windows API的GetCursorPos函数和RangeFromPoint方法,可以精确定位用户实际点击的单元格位置。代码示例展示了如何兼容32位/64位系统,并实现了同时显示选中区域和实际点击单元格地址的功能,解决了右击多选区域时的定位问题。运行结果证实该方法能准确识别用户点击的具体单元格位置。

2025-10-12 12:42:23 371

原创 新奇的Word表格单元格合并

本文介绍了使用VBA处理Word文档中非标准表格的方法。原始表格结构混乱,需要整理为标准格式并合并前两列相关单元格。实现步骤包括:删除空单元格和空行、记录待合并区域、执行合并操作。文章提供了完整的VBA代码,通过倒序遍历表格、判断单元格内容长度来识别合并区域,并详细解析了代码逻辑。该方案有效解决了Word表格合并时可能出现的运行时错误问题,特别适合处理系统导出或格式异常的表格数据。

2025-10-12 12:40:13 646

原创 VBA之正则表达式(45)-- 拆分材料和规格

本文介绍了使用VBA正则表达式拆分材料编码的方法。通过建立正则匹配模式,将A列材料编码拆分为名称(B列)和规格型号(C列)。代码支持多种编码格式处理,包括无空格组合、名称+数字、纯名称以及名称+空格+规格等类型。核心是通过正则表达式提取名称和规格,未匹配时直接填入名称。该方法实现了材料编码的自动化拆分,提高了数据处理效率。

2025-09-30 01:15:59 536

原创 使用VBA快速删除数据行(3/3)

本文介绍了如何使用VBA代码删除Excel中Amount列(第2列)为零的数据行。代码通过将数据加载到数组中进行处理,保留满足条件的行,最后清空原表并写入结果数据。关键点包括:使用CurrentRegion获取数据范围、数组遍历筛选、Resize方法调整结果区域大小。文章还提示了需注意格式处理的问题,并为不熟悉数组操作的读者提供了替代方案建议。代码结构清晰,适合批量处理数据需求。

2025-09-30 01:13:38 632

原创 使用VBA快速删除数据行(2/3)

本文提供了一个Excel VBA代码示例,用于删除数据表中Amount列(第2列)值为零的所有行。代码先将数据表加载到数组中,通过循环判断条件并收集符合条件的单元格,最后一次性删除所有符合条件的整行数据。相比逐行删除的方法,这种批量操作方式能显著提高代码执行效率,减少资源消耗。代码包含详细注释,便于理解每个步骤的功能实现。

2025-09-29 10:15:21 309

原创 使用VBA快速删除数据行(1/3)

文章摘要:本文介绍了如何使用VBA宏代码删除Excel中Amount列为零的数据行。关键点包括:1)使用End属性获取总行数;2)采用倒序循环(Step -1)避免删除行导致的行错位;3)通过Application.ScreenUpdating提升执行效率。示例代码展示了从下到上遍历并删除B列值为零的行的具体实现方法,适用于批量清理数据表的场景。

2025-09-29 10:14:02 288

原创 使用VBA实现快速多重数据筛选

该VBA代码实现了从Excel数据表中筛选特定条件的数据并输出到新工作表。筛选条件为:Col19列值为"Pass",且Col7-10列不全部为零。代码通过数组循环处理数据,满足条件的数据提取Col1列值存入结果数组,最后将结果写入新建工作表。文中还提供了条件判断的替代实现方式(使用乘法运算替代字符串连接判断)。该代码适用于需要批量筛选并提取特定行数据的场景。

2025-08-31 13:00:36 518

原创 根据Excel数据表快速创建Word表格(标签)

该VBA代码实现了将Excel数据转换为Word标签表格的功能。首先检查Word应用程序是否可用,然后创建Word文档和表格。通过循环处理Excel数据,将每行数据转化为Word表格中的三行格式,并设置不同字号。最后保存为Word文档并提示完成。代码包含错误处理机制,确保Word未安装时能友好提示。实现自动化数据转换,提高工作效率。

2025-08-31 12:54:26 809

原创 深入了解Excel工作表的代码名称(CodeName)

Excel工作表具有普通名称和代码名称两种标识,默认情况下两者相同。代码名称在VBA中更稳定,即使用户修改工作表标签名也不会影响代码运行。通过CodeName属性可读取但无法直接修改代码名称。如需修改,需使用VBA调用隐藏属性_CodeName,但需开启VBA对象模型访问权限。方法1通过VBProject组件修改,方法2则直接使用方括号语法修改,后者对权限要求较低。

2025-08-30 13:07:31 303

原创 使用VBA嵌套字典快速统计生产流转信息

本文介绍了一个VBA宏,用于统计公司各车间产品流转信息。该程序通过三级嵌套字典结构(车间→产品→批次)处理原始数据,生成包含三部分内容的统计报表:1)车间名称;2)每个产品的生产批次数量(如"3A"表示生产了3批A产品);3)流转信息汇总,包括总行数、产品清单及流转天数>1的记录。代码实现了数据自动分组、条件筛选和格式化输出功能,最终生成带边框的统计表格并自动调整列宽。主要技术点包括字典对象嵌套使用、字符串拼接处理和数组结果输出。

2025-08-30 13:04:26 661

原创 快速统计连续数字位置与个数

摘要:该VBA代码用于统计Excel表格中连续重复数字的位置和次数。程序通过双重循环遍历数据,识别每行中的连续相同数字,记录其起始位置、结束位置、数值及重复次数,并将结果输出到指定区域。核心算法通过比较相邻单元格数值判断连续性,使用动态数组存储结果,最后批量写入工作表。代码实现了高效的数据处理,避免了逐单元格操作,适用于大数据量分析场景。

2025-07-31 14:59:21 432

原创 快速定位核心关键词

该VBA代码用于在Excel表格F列中查找指定关键词,并在对应行的G列标记为1。主要步骤包括:定义斜杠分隔的关键词表,获取F列数据并转为字符串,循环查找每个关键词的出现位置。当找到关键词时,在结果数组相应位置标记1,最后将结果写入G列。代码通过InStr函数实现文本查找,支持多关键词连续标记,同时输出调试信息显示匹配位置。

2025-07-31 14:57:29 215

原创 快速匹配提取工程计价数据

本文介绍了一个Excel VBA数据提取解决方案。该方案从包含合并单元格的"基础表"中,根据"提取表"模板指定的指标,自动提取匹配数据并汇总。核心代码通过字典对象建立字段映射关系,处理合并单元格导致的标题空缺问题,并实现数据精准匹配和自动汇总。LoadHeader子程序专门处理多行表头结构,支持单行或双行表头格式。最终输出包含自动编号、数据提取和合计计算功能,有效解决了合并单元格环境下数据提取的难题。

2025-07-28 13:52:23 1078

原创 Word VBA快速制作试卷(2/2)

本文介绍了一个VBA宏代码,用于自动整理英语听力题目文档。该代码主要实现以下功能:1) 复制原始题目内容到文档末尾;2)插入"参考答案"标题;3) 对答案部分进行格式处理,将题目编号前的答案选项标红,并在答案部分标红并加下划线显示正确答案选项。代码通过Range对象操作实现文档内容的复制、格式修改和替换,使用了通配符查找和条件替换等技术。该工具可帮助教师快速整理听力测试材料,提高工作效率。

2025-07-28 13:49:20 446

原创 快速对比双列数据

现在需要进行数据对比,对齐两行数据,对于缺失数据,在相应的列留空(黄色单元格,输出结果数据时,无需设置单元格颜色),如下图所示。

2025-06-27 12:19:02 239

原创 快速移动包含合并单元格的数据行

实例需求:数据表如下图所示,前3列存在合并单元格,用户选中前三列的某个单元格(可能是合并单元格),运行代码,将整个部门的数据行全部下移,如果当前部分是数据表中最后一个部门,那么给出提示,数据行不再下移。

2025-06-27 12:16:21 499

原创 Word VBA快速制作试卷(1/2)

实例需求:Word文档用于英语单词学习,重点记忆单词标记下划线,其内容如下图所示。现在文档转换为填空题(无论单词字符多少,填空部分统一使用10个空格)和参考答案两部分,如下图所示。

2025-06-09 16:41:19 706

原创 使用VBA嵌套字典快速转换BOM表格

实例需求:产品记录表如下图所示,其中第一列为`Product`的为主产品,第一列为空为子产品,所有产品只存在一层从属关系,也就是说不存在子产品的子产品。注意表格中数据行的顺序不确定,子产品并不一定"跟随"其所属主产品,例如`产品4`向上查找,最近一个主产品是`产品2`,但是其主产品应该是`产品1`(以ParentSKU列为依据)。

2025-06-09 16:38:00 496

原创 拷贝多个Excel单元格区域为图片并粘贴到Word

Excel工作表Sheet1中有两个报表,相应单元格区域分别定义名称为`Report1`和`Report2`,如下图所示。

2025-05-05 08:24:13 621

原创 VBA实现后入先出(LIFO)库存统计

先入先出(FIFO)比较容易理解,买入早的优先卖出。与之对应的是后人先出(LIFO),就是优先卖出最近买入的,例如:第8行卖出2K,当天还没有买入记录,只能找前一天的买入记录(即第7行),此示例中恰巧二者出入平衡,如果第7行买入数据不足,那么继续向前找(假设还有可用库存)。这只是一个最简单的粗略介绍,如果读者需要更深入了解LIFO的相关知识,请自行网络搜索。

2025-05-05 08:19:03 880

原创 VBA快速合并多列单元格

实例需求:工作表中第3行到第5行有如下图所示的数据表,为了方便展示,隐藏了部分列,实际数据为从C列到DO列。现需要合并第3行和第4行相同内容的单元格,如第10行到第12行所示。

2025-05-02 17:43:23 792

原创 使用多个VBA字典对象快速整理BOM层级

实例需求:系统中导出的BOM清单如下图中左侧(A列和B列)所示,现在需要整理为右侧所示的BOM节点层级表(D列和E列)。

2025-05-02 17:34:24 798

原创 使用VBA快速创建留白的图片填充矩形框

实例需求:在活动工作表中插入矩形框,然后填充德国国旗(国旗图片来源:https://upload.wikimedia.org/wikipedia/en/b/ba/Flag_of_Germany.svg),国旗周边留白。第20行代码在【立即窗口】中输出活动工作表中的Shape对象的个数。第3~5行代码删除活动工作表中的Shape对象。第16行代码调整填充图片剪裁宽度。第17行代码调整填充图片剪裁高度。第11行代码在矩形框中填充图片。第13行代码获取图片的宽度。第14行代码获取图片的高度。

2025-04-29 11:40:08 386

原创 判断用户选择的Excel单元格区域是否跨页?

VBA应用程序开发过程中,经常需要处理用户选中的单元格区域,有的应用场景中,需要限制用户选中区域位于同一页中(以打印预览显示的分页划分),但是VBA对象模型中并没有提供相应的接口,用于快速查询单元格位于哪个打印页面中,那么只能自己动手丰衣足食了。第8行代码获取行分页符之下的单元格,例如我的电脑打开示例文件,其第一个分页符位于54行和55行之间(各位读者系统默认打印机的设置将影响分页符的位置,可能与我的并不相同),那么HPB.Location返回值为A55。第9行代码获取行分页符之上的单元格。

2025-04-29 11:36:40 509

原创 VBA快速创建分列对齐的文本框

通常实现思路是,在同一行两列内容之间填充空格,达到如图效果,但是使用这种对齐方法,其弊端和在Word中使用空格调整首行缩进一样,由于多数字体都不是等宽字体,也就是数字1宽度通常小于数字2(英文字母字符存在同样的问题),那么通过统计已有数据字符个数,进而确定填充空格的数量也就是不可靠,最终的效果有时可以对齐,有时无法对齐。下面示例代码将使用更精准的方法来实现上图的效果。

2025-04-28 09:23:57 414

原创 VBA快速创建Excel中数据模型的数据连接

如果PowerPivot是基于Excel数据模型的,那么将需要使用VBA创建数据连接,并添加到数据模型中,但是这个过程并不像创建普通数据透视表的数据连接那么简单,需要一些小技巧。

2025-04-28 09:22:02 584

原创 VBA快速合并不规范的数据表

实例需求:数据表如下图所示,表中数据逐渐增加,导致同一个姓名的相关数据不连续,每行数据中的内容数量不同,可能出现在任意数据列。现在需要将数据整理为如下格式,对于某个姓名,同一列如果存在多个数据,那么使用逗号作为分隔符,如下图所示。

2025-03-11 12:03:22 468

原创 VBA Dir查找文件按指定规则排序

实例需求:C:\Temp目录中的文件如下所示,各位同学肯定知道在VBA中使用`Dir`可以查找文件,其顺序就按照文件名称升序排列,但是此处需要按照指定顺序处理文件,对于每个`Tagx`,需要先处理`Tagx_Before`,然后再处理`Tagx_After`,那么就需要使用自定义排序来处理文件列表。

2025-03-11 12:01:04 556

原创 快速定位Word文档中特殊符号之间的文本(2/2)

实例需求:Word文档如下图中左侧所示,现需要修改手工换行符和段落符之间文字的字体为蓝色,如右图所示,注意示例文档中有两个文本框,并且第二个文本框中包含表格。- 在Word中使用【Shift+Enter】输入手工换行符,也称为软回车,其ASCII值为11,在文档中显示为向下的灰色箭头,如文档截图中第一行行尾所示- 在Word中使用【Enter】输入段落符,也称为硬回车,其ASCII值为13,在文档中显示为转角向左的灰色箭头,如文档截图中第二行行尾所示- 修改字体颜色时,应避免影响项目编号、项目符号的

2025-03-09 08:11:36 524

原创 快速定位Word文档中特殊符号之间的文本(1/2)

实例需求:Word文档如下图中左侧所示,现需要修改手工换行符和段落符之间文字的字体为蓝色,如右图所示。- 在Word中使用【Shift+Enter】输入手工换行符,也称为软回车,其ASCII值为11,在文档中显示为向下的灰色箭头,如文档截图中第一行行尾所示- 在Word中使用【Enter】输入段落符,也称为硬回车,其ASCII值为13,在文档中显示为转角向左的灰色箭头,如文档截图中第二行行尾所示- 修改字体颜色时,应避免影响项目编号、项目符号的字体样式

2025-03-09 08:08:02 825

原创 快速列出MS Word中所有可用字体

Word中有很多字体,虽然在字体下拉列表中提供了字体的样例,但是并不全面,例如使用Batang字体的话,数字会显示成什么效果,就无法直观的看到。

2025-02-28 15:34:22 793

原创 VBA实现智能自适应文本框

实例需求:用户窗体中有两个文本框,由于第二个文本框输入的内容可长可短,因此希望实现下图中的效果。- 如果输入内容不超过文本框可显示长度,那么文本框采用初始宽度,固定不变- 如果输入内容过长,超过文本框可显示长度,那么调整文本框宽度,确保文字可以全部显示

2025-02-28 15:16:31 580

原创 VBA快速提取数据

现在需要在提取每个`类目`中,查找编号最大的`分组`,然后提取该分组中`评分`最高的数据行(假设每个类目中符合要求 数据行是唯一的)。粗略看这个需要,似乎需要需要使用字典对象,排重提取类目,然后再查找最大分组。其实变通一下思路,可以有更简单的实现方法。如果将数据按照前3列依次升序排序,那么表格如下所示,需要提取的数据行进行了高亮标记,不难发现其中的规律,其实就是每个`类目`的最后一行数据。

2025-02-26 14:47:53 564

原创 VBA递归累加求和

对于玩VBA的各位小伙伴来说,很多人对于递归总是有些犯怵,觉得有些无从下手。本博客就和大家用递归做个小任务,希望大家能够更好的掌握递归的相关知识。编程任务:实现1到10的累加。这个实例任务对VBA小白来说也是很友好,不用问DeepSeek,大家应该都可以用常规VBA编程思路实现。

2025-02-26 14:45:26 732

Excel工作表中的特殊按钮示例文件

Excel工作表中的特殊按钮,无需任何代码实现点击按访问网站

2022-10-07

JSON示例数据文件

JSON数据示例文件,演示如何使用VBA解析复杂JSON数据。

2019-08-13

VBA绘制多边形

VBA示例文件,用于在Excel和Word中绘制多边形,多种实现方法。

2018-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除