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

⏹待生成数据的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 Object
    Dim lineInfo As String
    Dim 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
        .Open
    End With
    
    ' 定义一个常量,标识如果文件存在,则覆盖现有文件并保存数据。
    Const adSaveCreateOverWrite = 2
    ' 开始的行号
    Const startRowNum = 4
    
    ' 从"SHOP_INFO"工作表的 B2单元格 开始向下的连续非空单元格范围的最后一行
    ' 定义变量的同时,给变量赋值
    Dim endRowNum As Integer: endRowNum = Sheets("SHOP_INFO").Cells(2, 2).End(xlDown).Row
    
    With Sheets("SHOP_INFO").UsedRange
    
        For i = startRowNum To endRowNum
        
            lineInfo = ""
            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系统换行符 \n
            fso.WriteText lineInfo & vbLf
            
        Next
    End With
    
    ' 保存文件
    fso.SaveToFile fileName, adSaveCreateOverWrite
    fso.Close
    
    Set fso = Nothing
    
    MsgBox "csv文件创建完成!"

End Sub

⏹生成的CSV文件

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/590414.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV(四)—— 车牌号识别

本节是车牌识别的最后一部分 —— 车牌字符识别,从一个完整的车牌图片到识别出车牌上的字符大致需要如下几步: 预处理:将车牌图片灰度化、二值化,并去除识别时的干扰因素,比如车牌铆钉字符分割:将整个车牌…

for循环赋值

在for循环内将i赋值给j的问题 for(int i0,ji1;i<5;i){//此时j只会等于1cout<<"i-"<<i<<" j-"<<j<<endl; }如图&#xff1a; 将j放入循环体后没问题 for(int i0;i<5;i){int j i1; cout<<"i-"<<…

关于一个error C2664错误代码的解析

具体错误信息如下所示&#xff1a; error C2664: “osgEarth::UID osgEarth::Util::ShaderFactory::addPreProcessorCallback(osg::Referenced *,std::function<void (std::string &,osg::Referenced *)>)”: 无法将参数 2 从“osgEarth::Util::PbrLightEffect::att…

40 生产者消费者模型

生产者消费者模型 概念 为何要使用生产者消费者模型&#xff0c;这个是用过一个容器解决生产者和消费的强耦合问题。生产者和消费者之间不需要通讯&#xff0c;通过阻塞队列通讯&#xff0c;所以生产者生产完数据之后不用等待消费者处理&#xff0c;直接扔给阻塞队列&#xf…

41.WEB渗透测试-信息收集-域名、指纹收集(3)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;40.WEB渗透测试-信息收集-域名、指纹收集&#xff08;2&#xff09; 关于oneforall的安装…

DRF视图源码分析

DRF视图源码分析 1 APIView class GenericAPIView(APIView):pass # 10功能class GenericViewSet(xxxx.View-2个功能, GenericAPIView):pass # 5功能能class UserView(GenericViewSet):def get(self,request):passAPIView是drf中 “顶层” 的视图类&#xff0c;在他的内部主要…

SpringBoot+阿里云实现验证码登录注册及重置密码

开通阿里云短信服务 阿里云官网 创建API的Key 可以使用手机号或者刷脸来进行创建Key 创建成功 开通完成以后接下来实现代码请求阶段 配置maven依赖 <!-- 阿里云 oss 短信 依赖--><dependency><groupId>com.aliyun</groupId><artifactId>dysm…

Python的使用

1、打印&#xff1a;print&#xff08;‘hello’&#xff09; 2、Python的除法是数学意义上的除法 print&#xff08;2/3&#xff09; 输出&#xff1a;0.6666... 3、a18 a‘hello’ print(a) 可以直接输出 4、**2 表示2的平方 5、打印类型 print&#xff08;type&am…

【深度学习】第二门课 改善深层神经网络 Week 1 深度学习的实践层面

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;深度学习 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对…

R语言学习—6—多元相关与回归分析

1、引子 xc(171,175,159,155,152,158,154,164,168,166,159,164) #身高 yc(57,64,41,38,35,44,41,51,57,49,47,46) #体重 par(marc(5,4,2,1)) #设定图距离画布边缘的距离&#xff1a;下5&#xff0c;左4&#xff0c;上2&#xff0c;右1 plot(x,y) 2、相关…

【华为 ICT HCIA eNSP 习题汇总】——题目集20

1、&#xff08;多选&#xff09;若两个虚拟机能够互相ping通&#xff0c;则通讯过程中会使用&#xff08;&#xff09;。 A、虚拟网卡 B、物理网卡 C、物理交换机 D、分布式虚拟交换机 考点&#xff1a;数据通信 解析&#xff1a;&#xff08;AD&#xff09; 物理网卡是硬件设…

webpack 常用插件

clean-webpack-plugin 这个插件的主要作用是清除构建目录中的旧文件&#xff0c;以确保每次构建时都能得到一个干净的环境。 var { CleanWebpackPlugin } require("clean-webpack-plugin") const path require("path");module.exports {mode: "de…

docker 基础命令

docker 安装 更新系统 sudo apt update sudo apt -y dist-upgrade安装docker sudo apt-get -y install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/…

数据结构——链表(精简易懂版)

文章目录 链表概述链表的实现链表的节点&#xff08;单个积木&#xff09;链表的构建直接构建尾插法构建头插法构建 链表的插入 总结 链表概述 1&#xff0c;链表&#xff08;Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储一系列元素。它由一系列节点&…

双链表的应用

cf edu161 D. Berserk Monsters 思路&#xff1a; 因为考虑到&#xff0c;每个怪是否死亡与其左右的怪息息相关&#xff0c;再者&#xff0c;若当前怪死亡&#xff0c;周围怪的相邻信息也会产生变化&#xff0c;由此可以想到使用双链表进行维护&#xff0c;双链表的维护方式有…

STM32——中断篇

技术笔记&#xff01; 1 中断相关概念 1.1 什么是中断&#xff1f; 中断是单片机正在执行程序时&#xff0c;由于内部或外部事件的触发&#xff0c;打断当前程序&#xff0c;转而去处理这一事件&#xff0c;当处理完成后再回到原来被打断的地方继续执行原程序的过程。 在AR…

算法学习系列(五十四):单源最短路的综合应用

目录 引言一、新年好二、通信线路三、道路与航线四、最优贸易 引言 关于这个单源最短路的综合应用&#xff0c;其实最短路问题最简单的就是模板了&#xff0c;这是一个基础&#xff0c;然后会与各种算法结合到一块&#xff0c;就是不再考察单个知识点了&#xff0c;而是各种知…

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1

ICode国际青少年编程竞赛- Python-1级训练场-基础训练1 1、 Dev.step(4)2、 Dev.step(-4) Dev.step(8)3、 Dev.turnLeft() Dev.step(4)4、 Dev.step(3) Dev.turnLeft() Dev.step(-1) Dev.step(4)5、 Dev.step(-1) Dev.step(3) Dev.step(-2) Dev.turnLeft() Dev.step(…

su03t语音模块烧录识别不出问题解决方法

今天被su03t模块的烧写问题&#xff0c;卡了一下午&#xff0c;也是非常困惑。所幸到现在已经能够解决问题&#xff0c;并且有一些心得&#xff0c;因此想要记录一下&#xff0c;也可以帮助有同样困惑的小伙伴。 首先我们来说一下接线问题&#xff0c;因为要利用到ch340&#x…

使用DataGrip连接DM达梦数据库

前言 达梦数据库虽然提供了官方的数据库管理工具"DM管理工具"&#xff0c;但是该软件经常莫名卡顿&#xff0c;影响开发效率和心情。所以&#xff0c;本人一般使用DataGrip进行数据库操作。DataGrip是JetBrains公司开发的一款强大的数据库IDE&#xff0c;支持多种数…