VBA—EXCEL操作集合—02

Excel VBA编程 文章目录如何创建VBAVBA语法规则声明变量给变量赋值让变量存储的数据参与运算关于声明变量的其他知识变量的作用域特殊的变量——数组声明多维数组声明动态数组其他创建数组的方法数组函数利用UBound求数组的最大索引号利用LBound函数求最小索引号求多维数组的最大和最小索引号用join函数将一维数组合并成字符串将数组内容写入工作表中数组的存取特殊数据的专用容器——常量对象,集合及对象的属性和方法VB... 阅读详情

如果大家看了我上一篇文章,相信大家应该都已经学会录制宏了,这一次,我跟大家继续分享关于VBA的一些常用的知识点。

使用VBA进行【列转行】

通过截图我们先看一下我们要做的工作是什么

 

我在实际工作中遇到了这种列转行的情况,当然,不通过VBA,通过EXCEL本身的菜单操作也可以完成,我主要是想讲用VBA来如何实现这个功能。

代码如下:

Public Sub 班级列转行循环()
    Dim startCol, endCol As Integer
    Dim i_col_1, i_col_2 As Integer
    Dim wk, desc_wk As Worksheet
    Dim i_row As Long
    Dim desc_i_row As Long
    Dim is_have As Boolean
    
    
    Set wk = Application.ActiveWorkbook.Worksheets("Sheet1")
    Set desc_wk = Application.ActiveWorkbook.Worksheets("Sheet2")
    
    startCol = 1 '需要从第几列开始转
    endCol = 5  '到第几列结束
    is_have = False
    
    desc_i_row = 1
    For i_row = 1 To 3
        If desc_i_row < i_row Then
            desc_i_row = i_row
        End If
        
        For i_col_1 = startCol To endCol
            If Len(wk.Cells(i_row, i_col_1)) > 0 Then
                is_have = True
                Exit For
            End If
        Next i_col_1

        If is_have = False Then
            i_col_2 = startCol - 1
            While i_col_2 >= 1
                desc_wk.Cells(desc_i_row, i_col_2) = wk.Cells(i_row, i_col_2)
                i_col_2 = i_col_2 - 1
            Wend
        Else
            For i_col_1 = startCol To endCol
                If Len(wk.Cells(i_row, i_col_1)) > 0 Then
                    i_col_2 = startCol - 1
                    While i_col_2 >= 1
                        desc_wk.Cells(desc_i_row, i_col_2) = wk.Cells(i_row, i_col_2)
                        i_col_2 = i_col_2 - 1
                    Wend
                    desc_wk.Cells(desc_i_row, startCol) = wk.Cells(i_row, i_col_1)
                    
                    desc_i_row = desc_i_row + 1
                End If
            Next i_col_1
        End If

    Next i_row
    
    MsgBox "转换完成"
End Sub

我对部分代码做一下简单的讲解:

代码中有2个变量我添加了注释,通过startCol和endCol来控制需要转换的列的起始和结束位置。

Set wk = Application.ActiveWorkbook.Worksheets("班级列转行源数据")
Set desc_wk = Application.ActiveWorkbook.Worksheets("班级列转行")

这2行代码主要是用来获取需要进行数据转换的Sheet,把转换后的内容输出到新的Sheet中。

desc_i_row = 1  这个是用来控制把转换后的内容输出到新的Sheet时候,从第几行开始,1:代表是从新的Sheet的第一行开始输出。

For i_row = 1 To 3  这是一个循环,i_row是用来控制到底有多少行数据需要转换。通过截图我们也能看到,我需要转换的数据是从第1行开始,共3行需要转换。

For i_col_1 = startCol To endCol  这是循环列。

这里是为了工作方便,很多数值都直接写死到了代码中,大家可以根据自己的需要进行修改,也可以通过InputBox函数或者其他方式来进行动态获取。

(转)Excel VBA 操作 Word(入门篇) 原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人。 一、新建Word引用 需要首先创建一个对 Word Application 对象的引用。在VBA中,工具-引用,选取“MicroSoft Word 11.0 Object Library”。 方法一、New Word.App... 阅读详情

相关推荐

【Excel VBA 从入门到出门】二、Excel VBA 简单使用

人们用 VBA 编写的大多数代码都是 `Sub` 和 `Function` 过程。因此,在本节中,我们将主要学习如何编写、编辑和运行它们。

kunlong-luo的博客 5110

Excel·VBA表格横向、纵向相互转换

2种方法实现横向转纵向;1种方法实现纵向转横向

hhhhh_51的博客 3858

VBA:ADO连接excel配合SQL操作

excel里sheet1的ambass栏要填,site栏是key。和sheet2 sheet3有一对一关系,最后从sheet3得出ambass填入sheet1。纯表操作用sql来做非常方便,整个方法跑下来只需要3秒就跑完了,没有VBA众多循环判断关系,简单的select update两句即可。需要注意的重点:vba里外连接异常困难,3个表或以上的内加外连接难以实现。我尝试了很久最终还是放弃了,用回...

weixin_31808811的博客 8892

vba 列转行

Sub C2R() Dim RCount As Integer RCount = 2 Dim FillIn, FillIn2 Set FillIn = Worksheets("Fill-in Forms") Set FillIn2 = Worksheets("fillinforms2") Applicati...

weixin_34150503的博客 580

EXCEL VBA小白第一课:入门

本文首发我的知乎,转载请注明出处。 其实网上关于VBA的教程并不少,但是对于小白来说,最难的还是入门。 大神们一行行代码讲得天花乱坠,然而小白却不知道从哪里进入代码界面,代码的语法是怎样的,怎么运行代码,怎么进行debug。 我也是从小白一步步摸石头过河,所以能深切体会到小白内心的无力和憧憬。 所以,我们从第一步开始,一起努力走向VBA大神之路吧! 梦想还

Jesikundin的博客 3万+

【Excel VBA 从入门到出门】一、Excel VBA 是个啥?

VBA代表Visual Basic for A applications。它是一种编程语言,用于自动执行 Microsoft Office 产品(包括 Excel、Word 和 Outlook)中的任务。使用 VBA Excel,您可以编写代码来自动执行任务、创建自定义函数,甚至在 Office 程序之间移动数据。

kunlong-luo的博客 3319

Excel·VBA数组行列转换函数

1,二维数组与一维嵌套数组互相转换函数;2,二维数组转换为指定行数/列数的函数;3,数组行列转置函数

hhhhh_51的博客 4832

【vba】——整合excel数据

vba是在最初组织旧版评教系统时就接触过的,但一直没研究过,也没仔细看过。只知道它可以整理数据。 了解:     Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种

相由心生-心随相改~ 1万+

用sql in vba将表格中的一列数据转换成一行数据,要求使用transform语句

使用transform语句可以将表格中的一列数据转换成一行数据,SQL语句如下: SELECT * FROM tableName TRANSFORM(columnName) PIVOT (MAX(columnName) FOR columnName IN (values)) AS PivotTableName ...

weixin_42578963的博客 481

【Oracle】Oracle行转列、列转行的几种方法

【代码】Oracle行转列、列转行的几种方法。

tttzzzqqq2018的博客 1万+

excel列转行的宏

无比强大的excel宏,我非常喜欢用!可以将列转成行

EXCEL VBA 入门与实用例子

VBA这个以前用过,放下很久了,最近因需要用Excel处理数据,用到了它,使用了其它一些方式,对比一下,感到VBA还是有些长处的。故将以前的学习笔记,重新整理了一下,发表到这里,供有需要的人借鉴。...............

cnds123的专栏 7万+

EXCEL横转竖(列转行)宏

EXCEL横转竖(列转行)宏工具。可以用以小区排列转换等等。

VBA操作Excel之设置单元格属性

VBA操作Excel简介一、VBA读写Excel文件 一、VBA读写Excel文件

weixin_46846685的博客 9166

卡尔曼滤波、互补滤波与Tsinghua滤波:平衡车姿态感知的三大算法对比

本文对比了平衡车姿态感知中的卡尔曼滤波、互补滤波与Tsinghua滤波三大核心算法。互补滤波计算简单,适合入门;卡尔曼滤波理论最优但实现复杂;Tsinghua滤波则是一种面向嵌入式优化的轻量级方案,通过动态权重调整和零偏估计,在资源受限的MCU上实现了性能与效率的平衡,是智能车竞赛等场景的实用选择。

weixin_29232121的博客 349

异次元发卡最新漏洞0day(XSS组合拳)

异次元商店头像上传处存在存储型XSS注入(user、admin均存在)。其中,user处有过滤,admin无。 将恶意脚本插入后,管理员访问用户管理页面即可执行恶意脚本。 恶意脚本执行后,会新增一个管理员用户,进而获得权限。鉴于漏洞还没有泛滥,而且很多站都有漏洞。EXP暂时不公开。需要学习可以加入知识星球

白昼小丑的博客 4589

Python操作Excel的Xlwings教程(八)——Excel使用VBA调用Python

操作Excel的Xlwings教程已经陆陆续续出了七篇了,现在是第八篇。历史关于Xlwings的一些教程大家可以在看我的主页。 在这些教程学习的过程中,有一些小伙伴反映自己有些时候找不到相应的文档,想要实现的功能不知道怎么找资料进行学习。这里我推荐官网的VBA教程,在上个关于Xlwings的教程中有相应的体现。说到这也就开始了我们这次推文的主题,在Xlwings中使用VBA的宏来进行Excel的操作。 一、知识准备 在Xlwings的官方文档中,我寻找到了一个关于Python API的东西。...

th1522856954的博客 3519

A股历史数据免费下载终极指南:4000+个股数据一键打包获取

本文提供了获取A股历史数据的完整免费方案,重点介绍了Tushare Pro、AkShare等开源金融数据API的使用方法。通过详细的Python脚本示例,指导读者如何自动化批量抓取、清洗、存储4000多只个股的历史行情数据,并分享数据质量校验与性能优化技巧,助力量化研究与市场分析。

ooo22的博客 2221

VBA中调用excel的函数

点击打开链接

qq_25245887的博客 4万+

别只聊天了!手把手教你为Ollama+Open WebUI搭建本地知识库(基于BGE-M3和Qwen)

本文详细介绍了如何利用Ollama、Open WebUI和BGE-M3构建本地知识库,实现智能问答和文档检索。通过环境准备、文档处理、向量化实战和应用案例,帮助用户突破基础聊天场景,打造高效的个人知识管理体系。特别适合技术文档管理和学术研究场景。

weixin_42523720的博客 478

【AI大模型应用开发】【LangChain系列】实战案例6:利用大模型进行文本总结的方法探索,文本Token超限怎么办?

假设有一组文档(PDF、Notion页面、客户问题等),你想要总结内容。可以利用大模型来帮你。今天来系统看下利用大模型来对文本进行总结的方法,以LangChain的使用为例。

同学小张的博客 3749

使用Excel+VBA对网页进行操作

使用Excel+VBA对网页进行操作 黄晨 · 5 个月前 因为在知乎的一些答案,最近总有私信问我如何使用VBA网抓的,我基本都没有回复。因为这个问题太大了,对于有基础的人来说,自己百度或者上ExcelHome论坛其实很容易找到答案,并不需要我说什么,而对于没有基础的人来说,三言两语不可能解决问题,我也不想把私信变成聊天窗。借着知乎开放专栏的机会,正好来仔细交代一下这个问题。 对于E

kendyhj9999的专栏 6万+

PCL 4PCS算法实现点云粗配准【2026最新版】

博客长期更新,本文最新更新时间为:2026年5月11日。

点云侠的博客 30万+

Excel之VBA操作

但是 Excel 在打开包含 VBA 代码的工作簿时,在编辑栏上方,显示安全警告,并且可以选择启用代码运行或不启用。如果选择启用,下次打开相同的工作簿,不会出现警告。设置方法:在开发工具选项卡,点击「宏安全性」按钮,弹出信任中心窗口,在左侧列表中,选择「受信任位置」。把一个文件夹添加到 Excel 受信任的位置后,该文件夹下的包含 VBA 代码的工作簿打开时,不会提示安全警告,也无需每次手动开启代码。Excel 提供 4 种宏安全性选项,在开发工具选项卡,点击「宏安全性」按钮,打开信任中心。

csren11的博客 8462

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

YOLOv11-seg改进系列 | 引入CVPR2022 MetaFormer,零参数池化Token混合+StarReLU MLP,精度涨不掉速

本文提出了一种改进YOLOv11分割任务的C3k2_PoolingFormer模块,通过引入MetaFormer架构和Pooling Token Mixer,在保持模型轻量化的同时增强全局感受野建模能力。核心创新包括:1)使用零参数的AvgPool3×3差值作为Token Mixer,实现高效邻域信息聚合和局部对比增强;2)采用StarReLU MLP替代传统激活函数,提升非线性表达能力。改进后模型仅增加6.1%参数量,却能显著提升分割精度,特别适用于需要长程依赖建模的实例分割任务。该设计为轻量级视觉模型提

qq_44224801的博客 431
上一篇: VBA—EXCEL操作集合—01
下一篇: VBA—EXCEL操作集合—03
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

02年程序员飞鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值