VBA 读取sheet页中的指定区域数据,生成CSV文件

embedded/2024/10/21 11:31:18/

⏹待生成数据的sheet页

在这里插入图片描述

VBA代码

  • CreateObject("ADODB.Stream"):Microsoft ActiveX Data Objects (ADO) 库中的一个对象,用来处理文件的读写操作。
  • Application.PathSeparator:系统默认的分隔符。
  • Const startRowNum = 4:定义一个常量
  • .SaveToFile FileName, SaveOptions
    • adSaveCreateNotExist(0):如果文件不存在,则创建文件并保存数据。
    • adSaveCreateOverWrite(2):如果文件存在,则覆盖现有文件并保存数据。
    • adSaveCreateNotExist(1):如果文件存在,则追加数据到文件末尾。
    • adSaveCreateOverWrite(4):如果文件存在,则在当前文件后面继续写入数据。
  • 换行符
    • vbCrLf:windows的换行符 \r\n
    • vbLf:Linux系统换行符 \n
Sub Csv_create()Dim fso As ObjectDim lineInfo As StringDim i As Long' ADODB.Stream 是 Microsoft ActiveX Data Objects (ADO) 库中的一个对象,用来处理文件的读写操作。Set fso = CreateObject("ADODB.Stream")' 获取要生成的文件的名称, Application.PathSeparator 表示系统默认的分隔符Dim fileName As String: fileName = ThisWorkbook.Path & Application.PathSeparator & Sheets("SHOP_INFO").Cells(1, 1).Value & ".csv"' 打开处理文件的流对象With fso.Charset = "UTF-8"' -1表示: 使用系统默认的分隔符.LineSeparator = -1.OpenEnd With' 定义一个常量,标识如果文件存在,则覆盖现有文件并保存数据。Const adSaveCreateOverWrite = 2' 开始的行号Const startRowNum = 4' 从"SHOP_INFO"工作表的 B2单元格 开始向下的连续非空单元格范围的最后一行' 定义变量的同时,给变量赋值Dim endRowNum As Integer: endRowNum = Sheets("SHOP_INFO").Cells(2, 2).End(xlDown).RowWith Sheets("SHOP_INFO").UsedRangeFor i = startRowNum To endRowNumlineInfo = ""lineInfo = lineInfo & """" & Sheets("SHOP_INFO").Cells(i, 2).Value & """" & ","lineInfo = lineInfo & """" & Sheets("SHOP_INFO").Cells(i, 3).Value & """" & ","lineInfo = lineInfo & """" & Sheets("SHOP_INFO").Cells(i, 4).Value & """" & ","lineInfo = lineInfo & """" & Sheets("SHOP_INFO").Cells(i, 5).Value & """" & ","lineInfo = lineInfo & """" & Sheets("SHOP_INFO").Cells(i, 6).Value & """"' vbCrLf: windows的换行符 \r\n' vbLf: Linux系统换行符 \nfso.WriteText lineInfo & vbLfNextEnd With' 保存文件fso.SaveToFile fileName, adSaveCreateOverWritefso.CloseSet fso = NothingMsgBox "csv文件创建完成!"End Sub

⏹生成的CSV文件

在这里插入图片描述


http://www.ppmy.cn/embedded/30707.html

相关文章

【doghead】ubuntu构建libuv

按照官方的文档2024年3月的版本。首先构建libuv 最终构建的还得了test 构建过程 zhangbin@DESKTOP-1723CM1:/mnt/d/XTRANS/thunderbolt/ayame/zhb-bifrost$ ls Bifrost-202403 README.md draw player-only worker 大神的带宽估计.png zhangbin@DESKTOP-1723CM1:/mnt/d/XTRANS/…

数据库[类型,基本概念,生活实例],登录mysql数据库的三种方式,修改sql编辑器界面样式及字体样式

数据库是按照特定方式组织起来的数据集合,它允许用户对数据进行高效的存储、检索和管理。数据库系统通常由两部分组成:数据库本身(数据的物理存储)和数据库管理系统(DBMS,用于创建和管理数据库的软件&#…

Oracle系统参数调整【数据库实例优化系列一】

Oracle实例是:内存组件和相关的后台进程组成。这些内存组件提高了数据库的运行,而后台进程负责管理系统和内存组件。 一、SGA和实例优化 Oracle的SGA是指的系统全局区。sga是数据库运行期间使用的一段公有内存,即数据库用户都可以访问这段内存,包括: 共享池、重做日志缓冲…

第二十八章:Java中,`stream()`方法使用汇总

Java中,stream()方法使用汇总 目标 通过示例学习,掌握Javastream()方法的实践应用 在Java中,stream()方法用于将集合(如List、Set等)或数组转换为Stream流对象,以便进行各种流式操作。流(Str…

http实现post请求时本地没问题,线上报413错误、nginx配置免费https、nginx反向代理

MENU 错误原因解决其他方式关于nginx的文章 错误原因 前端发送请求以后后端没有收到请求 而客户端却报了413错误 是请求实体过大的异常 如果请求夹带着文件就可能造成请求实体过大 那这里是什么原因造成的呢 在基础的后端开发中 都会用到nginx反向代理 默认大小为1M 超过1M都会…

Leetcode 32. 最长有效括号

心路历程: 本以为要用动态规划,但是递推有点太难了;主要是第一反映hard题不能就一个栈就解决吧,结果还真就是一个栈解决了。 括号问题还是得栈入手,这道题考察栈哈希表思想(其实就是数组索引) …

《人大金仓数据库》未来发展的展望

《人大金仓数据库》作为中国社会科学院经济研究所主办的重要数据平台,具有广泛的学术影响力和社会价值。未来,随着信息技术的不断发展和应用场景的不断拓展,人大金仓数据库将迎来更加广阔的发展空间和机遇。本文将对《人大金仓数据库》未来发…

Elasticsearch中对文章进行索引和查重

解决思路 要在Elasticsearch中对文章进行索引和查重,可以按照以下步骤操作: 安装Elasticsearch并启动服务。 安装Python的Elasticsearch客户端库,可以使用pip install elasticsearch命令进行安装。 编写Python代码,使用Elastic…