Microsoft VBA Excel 规律的Text文件转工作表Sheet

豆包辅助Excel技巧:用自然语言生成公式、清洗数据与VBA代码 Excel作为最普及的数据处理工具,其核心价值在于将业务逻辑转化为可执行操作;而实现这一转化的关键瓶颈,往往不是函数不熟或功能不会,而是‘如何准确表达需求’。随着大模型交互能力提升,以豆包为代表的AI协作者,正成为提升Excel使用效能的新范式——它不替代软件本身,而是强化用户对数据结构的理解力、对清洗规则的抽象力,以及对自动化逻辑的构建力。本文聚焦‘Excel技巧’与‘豆包’协同实践,详解如何通过精准指令驱动AI生成可粘贴的标准化公式、可复用的Power Query M代码、可运行的VBA脚本,并覆盖表格 阅读详情

问题场景

简述:
在Excel的.xlsm文件中,有一个"RunControl"的sheet用来操控转换Text到指定的sheet中,需要在这个sheet上增加一个按钮,并在按钮上链接一个VBA程序,实现指定的功能。

以下是"RunControl"内的控制表格,五个标题名称以及另一名称(“FileName”)都已经通过名称管理器定义了各自的单元格。

ItemFolderNameIndicatorFilePathTime
1ROEC:\User\Path1
2PEYC:\User\Path2
3PBC:\User\Path3
  1. 需要循环"Item"这一列数据,从被定义为"Item"的单元格开始直到取不到数据为止,这是主循环是否结束的判断;接着在每一次循环中先判断对应的"Indicator"是否是"Y",如果是"Y"则执行两个操作:①新建一个sheet(名称是对应的"FolderName"),②需要组合读取对应的"FilePath"和"FolderName"和另一个独立的单元格"FileName",这样就可以打开对应位置的文件执行后续的操作。

    举个例子,现在主循环是"Item"为"2"的这一行,“Indicator"是"Y”,所以需要完成两个操作:①新建sheet命名为"PE",②把对应的"FilePath"和"FolderName"和独立的"FileName"组合变成地址"C:\User\Path2\PE\Information.text",通过地址打开"Information.text"这个文件。

  2. 文件打开后每一行的格式是这样的:“S=1234|T=ABCD|N=Sample|Location=\Path”,需要按分隔符"|“切分每一列,使得全部数据都保存到对应的sheet(名称是对应的"FolderName”)中。每一行只需要直接根据每一行的分隔符判断是放入对应sheet的哪一列即可,无视连续的多个分隔符"|"。并且在切分完成后加入一个判断:如果切分结果中有某一行结果和其他行不一致,给出警告弹窗。完成以上操作后,记录操作的时间放入对应的"Time"中。


代码描述

Sub Run_Text()
    Dim wsRun As Worksheet
    Set wsRun = ThisWorkbook.Sheets("RunControl")
    
    Dim cell As Range
    Dim folderName As String, filePath As String, fileName As String
    Dim fullFilePath As String
    Dim newWs As Worksheet
    Dim lastRow As Long
    
    ' Turn off screen updating to reduce memory pressure
    Application.ScreenUpdating = False
    
    ' Get the value of the FileName named range
    fileName = ThisWorkbook.Names("FileName").RefersToRange.Value
    
    ' Get the last row of the Item named range
    lastRow = wsRun.Cells(wsRun.Rows.Count, wsRun.Range("Item").Column).End(xlUp).Row

    For Each cell In wsRun.Range("Item").Offset(1, 0).Resize(lastRow - wsRun.Range("Item").Row, 1)
        If wsRun.Range("Indicator").Offset(cell.Row - wsRun.Range("Item").Row, 0).Value = "Y" Then
        
            folderName = wsRun.Range("FolderName").Offset(cell.Row - wsRun.Range("Item").Row, 0).Value
            filePath = wsRun.Range("FilePath").Offset(cell.Row - wsRun.Range("Item").Row, 0).Value

            ' Create a new sheet with the folder name if it doesn't exist
            On Error Resume Next ' Ignore the error if the sheet exists
            Set newWs = ThisWorkbook.Sheets(folderName)
            If newWs Is Nothing Then ' Only add a new sheet if it does not exist
                Set newWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
                newWs.Name = folderName
            Else 
            	newWs.Cells.Clear
            End If
            On Error GoTo 0 ' Stop ignoring errors

            ' Combine the FilePath, FolderName and FileName
            fullFilePath = filePath & "\" & folderName & "\" & fileName

            ' Open and read the file
            Dim expectedColumnCount As Integer, currentColumnCount As Integer
		    Dim inconsistentData As Boolean
		    inconsistentData = False
		    expectedColumnCount = -1
		    
			' Declare a variable for the file number
			Dim fileNum As Integer
			fileNum = FreeFile
			
			' Open the text file for reading
			Open fullFilePath For Input As #fileNum
			
			' Read the entire file content into a string variable
			Dim fileContent As String
			fileContent = Input$(LOF(fileNum), #fileNum)
			
			' Close the file
			Close #fileNum
			
			' Split the file content into lines
			Dim fileLines() As String
			fileLines = Split(fileContent, vbCrLf)
			
            For Each line In fileLines
                If Trim(line) <> "" Then ' Ignore empty lines
                    lineData = Split(line, "|")
                    currentColumnCount = UBound(lineData) + 1 ' The number of columns in the current row

                    ' Set the expected number of columns at the first line of data
                    If expectedColumnCount = -1 Then
                        expectedColumnCount = currentColumnCount
                    End If

                    ' If the number of columns in the current row doesn't match the expected number, record the inconsistency
                    If currentColumnCount <> expectedColumnCount Then
                        inconsistentData = True
                        ' Exit For ' Do not continue processing the file, exit the loop directly
                    End If

                    ' Fill the data into the appropriate position on the worksheet
                    With newWs
                        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
                        ' lastRow = 1
                        For colIndex = 0 To UBound(lineData)
                            .Cells(lastRow, colIndex + 1).Value = Trim(Mid(lineData(colIndex), InStr(lineData(colIndex), "=") + 1))
                        Next colIndex
                    End With
                End If
            Next line

            ' Check for inconsistent data
            If inconsistentData Then
                MsgBox "Please note, extra delimiters have caused abnormal splitting!", vbExclamation, "Data Split Warning"
            End If

            ' Record the time of the operation
            wsRun.Range("Time").Offset(cell.Row - wsRun.Range("Item").Row, 0).Value = Now()
			Set newWs = Nothing
        End If
    Next cell
End Sub

Excel列移动的五种安全方法:从拖拽到Power Query重排 Excel列移动表面是界面操作,实则是数据引用结构的重构行为。其底层涉及相对引用与绝对引用的动态解析、INDIRECT等易失性函数的修正失效、以及结构化引用在表格中的自动适配机制。技术价值在于保障公式稳定性、图表数据源一致性及透视表字段可维护性。典型应用场景包括销售报表整理、爬虫数据清洗、财务模型升级等需频繁调整字段顺序的业务流程。本文系统梳理基础拖拽、剪切粘贴、插入移位列、Power Query重排和VBA批量重排五类方案,聚焦Excel列移动与结构化引用两大核心热词,提供面向数据完整性保障的工程化实践路 阅读详情

相关推荐

Excel从入门到精通:核心函数、数据透视与自动化实战指南

电子表格软件是现代数据处理与分析的基础工具,其核心在于通过单元格网格结构存储和操作数据。其工作原理基于公式、函数与引用,实现对数据的自动化计算与动态更新。掌握这一技术能极大提升数据整理、计算分析和可视化的效率,是职场办公、业务分析和决策支持的关键技能。在实际应用中,用户常面临数据验证、多条件汇总和动态报表等需求,例如通过数据验证设置下拉列表确保数据规范性,利用SUMIFS函数实现多条件求和,以及借助数据透视表快速生成交互式分析报表。本文聚焦Excel的核心功能与实战技巧,系统讲解从基础操作到函数应用、再到数

weixin_30326515的博客 360

Claude in Excel:原生集成的AI助理如何重塑表格分析范式

Excel AI助手正从简单插件向深度原生集成演进,其核心在于突破传统办公自动化工具的上下文断裂与格式失真瓶颈。通过直接调用Excel对象模型(OM)和JavaScript API for Office,实现对公式、条件格式、数据验证等语义级理解,并支持单元格级溯源与可审计推理链。这种架构不仅保障企业级数据驻留与最小权限安全,更让业务人员无需切换环境即可完成智能选择、公式生成与深度洞察。尤其适合财务BP、运营分析师等需从‘数字’提炼‘为什么’的岗位,真正将AI能力嵌入日常表格工作流。

weixin_34226182的博客 388

WPS/Excel核心函数与高效技巧:从数据处理到自动化实战指南

在数据处理与分析领域,掌握电子表格软件的核心功能是提升工作效率的关键。其原理在于通过内置函数与自动化工具,将复杂的数据操作转化为可重复执行的逻辑流程。从技术价值看,这不仅能大幅减少重复劳动、降低人为错误,更能实现数据的动态关联与智能分析。无论是销售统计、库存管理还是项目跟踪,高效的数据处理能力都是现代办公的基石。本文聚焦于查找引用、逻辑判断、统计求和等核心函数家族,并结合数据验证、条件格式、数据透视表等实用技巧,通过XLOOKUP、VLOOKUP、SUMIFS等热词实例,系统讲解如何构建清晰的数据流与自动化

weixin_33700350的博客 416

Excel 如何让一个表格成为另一个工作簿的sheet

要让一个Excel表格成为另一个工作簿的sheet,可以按照以下步骤操作: 打开要将表格复制到的目标工作簿。 在目标工作簿中创建一个新的工作表,可单击工作表标签下的“+”符号或使用快捷键Shift+F11。 返回原始工作簿,选择要复制的表格。 右键单击选定的表格,选择“移动或复制”选项。 在“移动或复制”对话框中,选择要将表格复制到的工作簿,并选择目标工作簿中刚才创建的新工作表。 点击“确定”即...

weixin_42594427的博客 7139

Excel上标设置全攻略:保数据精度的7种实战方案

上标是Excel中常见的文本与数字格式化需求,广泛应用于单位标注(如m²、cm³)、化学式(H₂O)、序数词(1st)及数学表达式等场景。其本质涉及字符级字体控制与数据类型管理的双重原理:视觉修饰不改变底层数值,但错误操作易导致数字转文本、公式报错、排序异常等问题。技术价值在于平衡显示美观与计算可靠性,关键取决于是否保留原始数字的数据属性。典型应用场景包括工程报表、科研数据整理、财务指标呈现及跨平台分析协同。本文聚焦真实项目验证的7类方法,覆盖手工设置、快捷键优化、界面定制、自定义数字格式、方程工具、Uni

weixin_30340819的博客 357

Excel上标三种实现路径:格式/Unicode/公式层深度解析

上标是Excel中承载数学、化学及单位语义的关键排版能力,本质是通过视觉偏移或字符编码明确标识指数、幂次、层级等非数值含义。其技术原理涉及字体渲染机制、Unicode字符集支持与文本拼接逻辑,直接影响数据可读性、跨平台兼容性及专业交付质量。在财务建模、科研制表、工程文档和教育课件等场景中,正确使用上标能规避格式驳回、PDF错位、系统识别异常等风险。本文聚焦Excel上标三大实现路径——纯格式层(视觉覆盖)、Unicode文本层(硬编码稳定)、公式层(动态生成),结合CHAR函数、TEXTJOIN、VBA及P

weixin_30740581的博客 347

利用VBA宏高效将Word文本批量转化为表格

在日常办公和文档处理过程中,我们经常会遇到需要将一段结构化文本(如“类型:说明”格式)批量整理成表格的需求。手动操作不仅繁琐,还容易出错。其实,借助Word自带的VBA宏功能,我们可以一键实现文本到表格的高效转换,大大提升工作效率。本文将详细介绍如何编写和使用VBA宏,将特定格式的文本快速转化为Word表格。

u011186532的专栏 1931

Excel Flash Fill原理与实战:用示范学习快速清洗结构化文本

Flash Fill 是 Excel 内置的程序合成式文本处理技术,基于归纳式程序合成(Inductive Program Synthesis)原理,通过少量输入-输出样本自动推导字符串操作规则。它不依赖AI模型或云端计算,而是本地运行的确定性规则引擎,核心能力包括分隔符感知、前缀/后缀匹配、序列一致性识别与智能拼接。其技术价值在于将传统公式调试的分钟级操作压缩至秒级响应,显著提升脏数据清洗效率。典型应用场景涵盖姓名电话分离、SKU字段提取、日期格式标准化、多语言文本清理及伪结构化日志解析等。理解其‘示范驱

alince20008的博客 411

Excel获取Sheet名称公式

EXCEL中如何获得工作表(sheet)的名称

kikiwhq的专栏 7107

Excel中VLOOKUP与IF函数组合实战:跨表查找+条件判断全解析

VLOOKUP和IF是Excel数据处理的两大基石函数,前者实现精准跨表查找,后者完成逻辑分支判断。二者组合构建了‘定位→取值→决策→输出’的完整数据闭环,广泛应用于客户信息补全、职级动态标记、价格合规校验等真实业务场景。该组合不依赖高版本或插件,兼容Excel 2013及以上所有主流环境,兼具低门槛与高实用性。掌握其参数规范(如VLOOKUP四要素中的绝对引用与FALSE匹配)、嵌套边界(推荐单公式IF不超过三层)及错误语义(#N/A代表数据缺失而非公式错误),是提升报表自动化水平与数据思维能力的关键起点

weixin_34414196的博客 517

Excel MODE函数:数据众数计算原理与业务实战指南

众数(Mode)是描述数据集中趋势的基础统计量,指出现频率最高的数值,反映最典型的业务事实而非抽象均值。其核心原理是频次计数与确定性返回,不依赖分布假设,天然适配分类变量与离散场景。技术价值在于高鲁棒性、低计算开销及对异常值免疫,显著优于平均值在非正态数据中的误导风险。广泛应用于销售定价分析、客户评分诊断、库存补货周期识别、客服工单聚类等一线业务场景。本文深入解析MODE()函数的数字类型校验机制、首个众数优先规则、与MODE.SNGL()/MODE.MULT()的协同逻辑,并覆盖文本型数字误判、多区域聚合

weixin_30797199的博客 371

提取字符串,根据字段生成excel表格

【代码】提取字符串,根据字段生成excel表格。

Nicole_lalala的博客 299

Claude Sonnet 4.6实现通用计算机操作:GUI自动化新范式

通用计算机操作(General Computer Operation)是指AI不依赖API或脚本,直接通过GUI界面理解并执行人类标准操作的能力,其核心原理是模型对操作系统交互语义的深度建模——将鼠标悬停、焦点切换、弹窗出现等行为映射为可推理的状态机。这一能力突破了传统RPA和Selenium的脆弱性限制,具备跨应用、跨平台、抗UI变更的技术价值。典型应用场景包括自动填表、多系统数据同步、办公软件批量处理及低代码流程编排,尤其适用于缺乏API的老系统集成与中小团队敏捷自动化。Claude Sonnet 4.

weixin_30655569的博客 426

Excel图片交互:从零代码到VBA实现单击放大与平滑动画

在数据可视化与报表制作中,提升用户体验是核心诉求。图片交互作为关键功能,其原理在于通过事件驱动模型响应用户操作,实现动态内容展示。这项技术能显著提升数据呈现的效率和专业性,尤其在质检报告、产品目录等需要频繁核对图片的场景中价值突出。通过Excel VBA编程,可以构建从基础单击放大到带平滑动画的增强交互,其中事件处理和对象模型是技术实现的基础。本文聚焦Excel图片交互,详细拆解了零代码取巧方案与VBA自动化方案,并深入探讨了如何利用VBA事件和形状控制实现流畅的单击放大缩小功能,为数据报表的交互式设计提供

weixin_30417487的博客 438

模板驱动型文档自动化:零代码实现跨格式智能生成

文档自动化是企业内容生产提效的核心路径,其本质在于将重复性格式编排工作从人工操作中解耦。基于结构化模板、动态字段绑定与条件逻辑引擎,系统可实现数据到PDF/Word/HTML的秒级、确定性输出。相比传统邮件合并或低代码编辑器,模板驱动方案以‘文档DNA’编码思想重构生产链,支持语义化章节控制、跨格式样式隔离与实时数据注入,显著提升合规性、一致性与可维护性。尤其适用于合同管理、合规报告、产品说明书等强标准化场景,让产品经理、法务、客户成功等非技术人员也能主导内容交付流程。

weixin_33895695的博客 372

使用VBA宏自动化Excel文件拷贝功能

VBA(Visual Basic for Applications)是一种事件驱动的编程语言,被集成在大多数Microsoft Office应用程序中,尤其是Excel。它允许用户通过编写代码来自动化重复的任务,处理数据,以及与应用程序的其他组件进行交互。对于数据分析师、财务规划师、工程师等经常需要处理复杂数据和报表的专业人士来说,掌握VBA能够在日常工作中大大提高效率。FileSystemObject(FSO)是VBA中用于文件系统操作的一个主要对象。它允许你以编程方式创建、修改、删除文件和文件夹。

weixin_33816734的博客 1201

别再手动复制了!用VBA+QRmaker控件,一键在Excel里生成动态二维码(附完整代码)

本文详细介绍如何利用VBA和QRmaker控件在Excel中实现动态二维码的自动化生成,彻底告别手动复制粘贴的低效流程。通过完整的代码示例和配置指南,帮助用户快速掌握从基础生成到企业级优化的全流程解决方案,显著提升工作效率。

weixin_30904593的博客 480

PLUS模型土地利用变化模拟使用简介

因子包括自然因子如社会因子,通过计算整理得到新图层,并以tif文件输出到驱动因子的文件夹里,驱动因子文件夹里存放的是tif文件格式。线性回归使用提供的所有的LULC资源数据,可以选择往后预测的年数,选择好数据之后,可以得出预测的每一年的每一用地类型面积数据。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。

qq_42831270的博客 5813

AI赋能表格:用自然语言处理数据,告别Excel繁琐操作

自然语言处理(NLP)作为人工智能的核心技术之一,其原理在于让计算机理解并处理人类语言。在数据处理领域,这项技术正与自动化流程深度融合,通过将用户的口头或文字指令转化为可执行的代码或公式,从而创造巨大的技术价值。它极大地降低了数据操作的专业门槛,使业务人员无需精通复杂函数或编程,即可完成数据清洗、报表生成和复杂分析。这一变革广泛应用于财务、运营、市场分析等日常办公场景,让数据处理从繁琐的“体力活”转变为高效的“智能助手”。本文聚焦的“AI赋能表格”正是这一趋势的典型实践,它通过集成NLP和代码生成能力,让用

weixin_33889245的博客 364

在WebView中对第三方H5页面的文本密码框添加自定义随机键盘

前言: 首先介绍一下这个需求的背景,由于公司是涉及到金融行业的需要与银行对接资金存管。出于保密性这里不直接列出公司名字和银行名字。从2018年国家对金融行业大整改以来,为了能够顺利通过备案,我们也跟着政府的脚步一步一步走向合规。 好了,大致就是因为要通过备案,必须把这个需求实现,否则将不会通过。 需求内容就是,当客户端有关资金交易的时候,会通过加密数据以及秘钥的方式把第三方银行的页面(充值、...

比较喜欢、笑的博客专栏 1586

手把手教你解决Windows 10网络驱动器无法访问问题(附详细排查步骤)

本文详细指导Windows 10用户解决网络驱动器无法访问的常见问题。通过从现象快速定位到系统排查,提供了从检查网络连通性、修复凭据权限到调整高级设置的完整步骤,特别是针对“找不到网络路径”等错误,帮助用户高效恢复对共享资源的访问。

weixin_29233857的博客 519
上一篇: Microsoft VBA Excel 提取相同名称的整列数据
下一篇: Microsoft VBA Excel 单元格 重复元素 去重
偷心伊普西隆
博客等级 码龄7年 511粉丝 65原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值