精华内容
下载资源
问答
  • 本节讲一下使用vba代码如何合并单元格合并单元格其针对项目为单元格以及单元格内容来进行。基于Range对象的Merge方法来完成,其语法只有一个参数Across。语法Range.Merge(Across)Range是一个单元格区域对象变量。...

    NO.1

    Excel合并单元格操作,相对简单,快捷工具栏里有按钮可以方便执行。

    本节讲一下使用vba代码如何合并单元格。

    e405186750c6a8dac2630f3c1de50593.png

    合并单元格其针对项目为单元格以及单元格内容来进行。

    基于Range对象的Merge方法来完成,其语法只有一个参数Across。

    语法

    Range.Merge(Across)

    Range是一个单元格区域对象变量。

    也可以这样来表示:

    Range("A1:F10").Merge

    此例表示将A1到F1单元格进行合并,合并后单元格的值为A1单元格值。

    NO.2

    下图为合并单元格列子。

    cf77f9e6e2cf8bd65832a7b940e72cea.png

    方法介绍

    Range.Merge(Across) 方法:

    功能:从指定的Range对象创建合并单元格。

    值:合并区域的值在该区域左上角的单元格中指定。

    参数Across:

    如果设置为 True,则将指定区域中每一行的单元格合并为一个单独的合并单元格。 默认值为 False。

    a5607b4503abdac789a55ee8a1e485f7.png

    NO.3

    既然有合并单元格,就会有一个逆向操作,取消合并。

    UnMerge方法,也是基于Range对象的一个方法。

    此方法功能是,将合并区域分解为独立的单元格。

    语法:Range.UnMerge

    这里的Range是一个单元格对象变量。

    9d30bd42dc5f8bd98b0fecb820cd25ac.png

    例如:Range("C5").UnMerge

    将包含单元格 C5 的合并区域进行分解。

    如果在代码中使用UnMerge方法之前,要首先对MergeCells属性进行判断。

    MergeCells为True说明该区域包含合并单元格,False说明不包含合并区域,也就不需要进行分解单元格操作。

    如下代码:

    With Range("A5")  if .MergeCells then'包含合并单元格    .MergeArea.UnMerge'分解单元格  Else    MsgBox "没有合并单元"  End IfEnd With

    NO.4

    总得来说,合并和拆分单元格操作,相对简单,但是在应用过程中可能有点不方便.

    因为,对于一些表格位置要有一个清晰的定位,不然,拆分和合并就会显得有些乱.会出很多错误,其单元格内的值也会变得不正确.

    ---End---

    欢迎关注、收藏

    展开全文
  • Range.Merge 方法:由指定的Range对象创建合并单元格 (一)对选择的区域进行合并 Sub 合并单元格() Selection.Merge '对选中的单元格区域执行此段代码,进行合并,仅保留左上角值 End Sub ******************...

    Range.Merge 方法:由指定的Range对象创建合并单元格

    (一)对选择的区域进行合并

    Sub 合并单元格()

           Selection.Merge              '对选中的单元格区域执行此段代码,进行合并,仅保留左上角值

    End Sub

    **********************

    (二)对相同相邻单元格进行合并

    原料如下:

    部门 职工 职级
    1部门 张小跳 5
    1部门 李大刀 7
    1部门 王老虎 8
    1部门 陈麻子 6
    2部门 董小花 9
    2部门 马大海 10
    2部门 胡斑马 8
    2部门 赵小鱼 4
    3部门 魏小跑 9
    3部门 于大脑 10
    3部门 罗青蛙 8
    3部门 刘兔子 4

    Sub 合并单元格实例()       

    Dim er%, rng%, rg As Range             '定义变量

    Application.DisplayAlerts = False       '关掉提示窗口,其内容是“仅保留左上角单元格值”

    er = Application.CountA([a:a])            '数出A列的非空单元格,我们这里是14个

    For rng = er To 2 Step -1                    '执行从第14行到第2行,以-1为步长的循环

           Set rg = Range("a" & rng)            'a14单元格对象赋给rg,那rg就变成了单元格对象

           If rg = rg.Offset(-1) Then rg.Offset(-1).Resize(2).Merge   

    '判断a14单元格,如果该单元格=向上偏移一格的值,那么扩展最后一个单元格的尺寸为2,也就是a13到a14的合并。

    '在下一个循环里,判断a13单元格是否等于向上偏移一格的值(a12),逐一合并单元格,这里a13(连着a14)要和a12合并。

    Next

    Application.DisplayAlerts = True

    End Sub

    执行代码后的效果如下:

    部门 职工 职级
    1部门 张小跳 5
    李大刀 7
    王老虎 8
    陈麻子 6
    2部门 董小花 9
    马大海 10
    胡斑马 8
    赵小鱼 4
    3部门 魏小跑 9
    于大脑 10
    罗青蛙 8
    刘兔子 4

    VBA也太好用了叭!

    (三)取消合并单元格并保留原来的数据

    与合并单元格有关的属性

    Range.MergeArea 属性:返回的是一个Range对象,该对象代表包含指定单元格的合并区域。

    Range.UnMerge 方法:取消合并单元格,将合并区域分解为独立的单元格

    Sub test()

    a = Range("a1").MergeArea.Count       '与a1单元格合并在一起的单元格个数,包括 a1 在内哦。

    [a1].UnMerge                                         '取消合并a1单元格

    End Sub

    举个小栗子叭,如下表所示,原始表格里a1、a2、a3单元格都合并在一起了,所以这里的 a = 3.

      A B
    1 1 2
    2 2
    3 2

    Sub 取消单元格合并后保留原来的数据()

    Dim b%, ad$, rng As Range                '声明变量

           For Each rng In Selection             '对于选中的每一个单元格范围进行一个循环

           ad = rng.Address                          '循环的第一个单元格地址是a2

           b = rng.MergeArea.Count             '计算出来与a2合并在一起的单元格一共有4个

           rng.UnMerge                                 '取消与a2单元格合并的区域

           rng.Resize(b) = rng                       '取出取消合并后单元格行数,此处为5,将变量rng的值全部赋给这5行

           Next

    End Sub

    把这段代码执行到【部门-职工-职级】的工作表内(先选中第一列的这14行单元格再执行代码),运行后效果如下:

    部门 职工 职级
    1部门 张小跳 5
    1部门 李大刀 7
    1部门 王老虎 8
    1部门 陈麻子 6
    2部门 董小花 9
    2部门 马大海 10
    2部门 胡斑马 8
    2部门 赵小鱼 4
    3部门 魏小跑 9
    3部门 于大脑 10
    3部门 罗青蛙 8
    3部门 刘兔子 4

    周五快乐朋友们!

    展开全文
  • 原创:用VBA实现将鼠标选择的单元格按照指定格式合并并复制到剪切板 一、主要实现以下功能:1、用鼠标选择单元格(可谓连续单元格,也可为不连续的)后,按照要求格式“证件号码:+选定内容+“,”+”选定内容...

    原创:用VBA实现将鼠标选择的单元格按照指定格式合并并复制到剪切板

    一、主要实现以下功能:
    1、用鼠标选择单元格(可谓连续单元格,也可为不连续的)后,按照要求格式“证件号码:+选定内容+“,”+”选定内容“等等进行合并
    2、合并后的内容,直接复制到剪切板
    二、代码示例:

    Sub TestA()
    Set a = New DataObject
    '情况存放合并结果的单元格内容
    Range("B2") = ""
    '开始合并选择单元格的内容
    For Each C In Selection
    Range("B2").Value = Range("B2").Value & C.Value & ","
    Next
    '将汇总结果复制到剪切板
    Range("B2") = "证件号码:" & Range("B2")
    Range("B2").Select
    Range("B2") = Left(Range("B2"), Len(Range("B2")) - 1)
    Range("B2") = Range("B2") & ""
    'Range("B2").Select
    'Selection.copy
    '-------------
    a.SetText Range("B2")
    a.PutInClipboard
    End Sub
    三、示例文件及操作视频下载地址:
    加入QQ群,在群共享中可下载示例文件及演示视频:
    QQ群:303625469


    微信:Excel_Cortana

    转载于:https://www.cnblogs.com/mybi/p/3865554.html

    展开全文
  • 充满鲜花的世界到底在哪里,如果它真的存在我一定会去……诸君好,我们今天分享的VBA代码主题是使用字典查询并合并符合条件的多个结果~照例举个例子,如下图所示,根据A:B列的数据,查询D列人名的特长。...
    充满鲜花的世界到底在哪里,如果它真的存在我一定会去……诸君好,我们今天分享的VBA小代码主题是使用字典查询并合并符合条件的多个结果~照例举个例子,如下图所示,根据A:B列的数据,查询D列人名的特长。如果有多个特长则合并到一个单元格内,并去除重复项。例如“看见星光”,特长有打架、打架、搬砖……,去重复后,最后的计算结果为:打架/搬砖。a7d01cb3ace19803f8f415999a8f4eec.png
    代码如下:
    Sub DicFinds()    Dim d As Object, arr, brr, i&, strKey, s$    Set d = CreateObject("scripting.dictionary")    '后期字典    arr = Range("a1:b" & Cells(Rows.Count, 1).End(xlUp).Row)    '数据源装入数组Arr    For i = 1 To UBound(arr)        s = arr(i, 1)        If Not d.exists(s) Then        '如果字典不存在关键词s那么……            d(s) = "/" & arr(i, 2) & "/"            '姓名作为key,特长作为条目            '"/"的作用除了间隔符外,也为了避免在张三丰中查询到张三的存在,误认为重复。        ElseIf InStr(1, d(s), "/" & arr(i, 2) & "/", vbTextCompare) = 0 Then            '如果字典存在关键词s那么……            '用instr函数判断字典键值s的条目中是否已存在相关特长,如果不存在,和字典原有条目合并后装入字典……            d(s) = d(s) & arr(i, 2) & "/"        End If    Next    brr = Range("d1:e" & Cells(Rows.Count, 4).End(xlUp).Row)    '查询区域装入数组brr    For i = 2 To UBound(brr)    '遍历brr        s = brr(i, 1)        If d.exists(s) Then            strKey = d(s)            '字典key值对应的条目字符串            brr(i, 2) = Mid(strKey, 2, Len(strKey) - 2)            '使用MID+LEN函数提取去除首尾"\"后的字符串        Else            brr(i, 2) = ""            '否则查询结果为假空        End If    Next    With Range("d1:e" & Cells(Rows.Count, 4).End(xlUp).Row)        .NumberFormat = "@"        '设置单元格文本格式,避免文本数值变形        .Value = brr        'brr数组放回单元格区域    End With    Set d = Nothing    MsgBox "查询结束。"End Sub

    小贴士:
    1,代码使用了字典,把符合条件的多个结果合并为一个字符串作为item,回想下前几期的内容,可以得出以下3个字典常用的套路。累加计数:
    d(s)=d(s)+1

    累加求和:
    d(s)=d(s)+val(arr(i,2))

    合并同类项:
    d(s)=d(s)&arr(i,2)
    2,代码使用了instr函数判断值是否有重复。关于instr函数,前几天我们分享过了,参考:VBA常用小代码101:批量改变单元格部分字符格式。该函数的主要作用是判断一个字符在一个字符串中首次出现的位置,也就可以判断某个字符在指定字符串中是否存在,搭配间隔符后,即可精确判断重复项的问题。3,
    温暖的拥抱,夜安,好梦。
    展开全文
  • 前景提要(文末提供源码下载)昨天我们分享了如何将多个Excel工作薄按照指定合并的方法,我们只需要手工选择需要合并单元格的表头就可以了,但是有小伙伴们在运用的过程中表示,有时候需要合并的表头的列并不是连续...
  • 它的主要功能是根据指定的多个(单表或多表甚至多工作簿)单元格区域进行合并计算,一般常用于多表数据统计。比如下面这个小动画,5秒即可搞定多表数据统计。嘿~!是不是很简便又很实用~我们现在的问题是,如何...
  • VBA常用技巧

    2014-12-21 16:39:28
    15-4 取消合并单元格时在每个单元格中保留内容 12 技巧16 高亮显示单元格区域 12 技巧17 双击被保护单元格时不显示提示消息框 12 技巧18 重新计算工作表指定区域 12 技巧19 录入数据后单元格自动保护 12 技巧20 工作...
  • 'ExcelHome VBA编程学习与实践 Dim Trow&, k&, arr, brr, i&, j&, book&, a& Dim p$, f$, Rng As Range With Application.FileDialog(msoFileDialogFolderPicker) '取得用户选择的文件夹路径 ....
  • VBA编程技巧大全

    2013-08-05 09:03:19
    15-4 取消合并单元格时在每个单元格中保留内容 56 技巧16 高亮显示单元格区域 57 技巧17 双击被保护单元格时不显示提示消息框 58 技巧18 重新计算工作表指定区域 60 技巧19 录入数据后单元格自动保护 60 技巧20 工作...
  • Excel VBA实用技巧大全 附书源码

    热门讨论 2010-10-08 18:59:24
    04106判断某单元格是否为合并单元格区域的一部分 04107获取单元格区域内的值,并使其矩阵化 04108获取单元格内的前缀字符 04109判断单元格内的数字是否为文本字符 04110获取单元格的格式 04111获取单元格的字体...
  • 目录: 1.返回 Column 英文字 2.查询某一值第num次出现的值 ...157.查找合并单元格位置 158.阴阳历转换和阴阳历生日 159.利用数组和Substitute来替换某字符 160.一键创建斜线表头 161.自动获取指定月的工作日
  • 函数作用:前单元格指定字符前的字符颜色改成红色.....95 '93.函数作用:根据数字返回对应的字母列号...............96 '94.函数作用:取工作表名字.............................96 '95.函数作用:取消所有隐藏的宏表.....
  • 自动生成VBA窗体菜单

    2010-08-16 15:23:46
    自动生成VBA窗体菜单 '*************************** '* 菜单类 * '*************************** Option Explicit Private WithEvents MenuBar_MenuItem As MSForms.Label '菜单项 Private WithEvents WorkForm As...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    【选择合并单元格】:选择指定区域中的所有合并区域 【让合并单元格合理分页】:如果合并单元格已跨页,打印时会造成合并区域的值仅显示在一页中,另一页空白;或者两页各显示一部分,本工具用于调整合并单元格,使其...
  • Excel百宝箱

    2012-10-27 17:09:21
    【选择合并单元格】:选择指定区域中的所有合并区域 【让合并单元格合理分页】:如果合并单元格已跨页,打印时会造成合并区域的值仅显示在一页中,另一页空白;或者两页各显示一部分,本工具用于调整合并单元格,使其...
  • 【选择合并单元格】:选择指定区域中的所有合并区域 【让合并单元格合理分页】:如果合并单元格已跨页,打印时会造成合并区域的值仅显示在一页中,另一页空白;或者两页各显示一部分,本工具用于调整合并单元格,使...
  • Excel通用工具2.2

    2005-12-02 10:36:26
    功能概述:<BR>??1、总表拆分功能:将一张汇总表拆分成若干张结构相同的分表,拆分后的工作表...10、模块处理工具(编程专用):对VBA代码进行减肥、批量导出VBA项目模块、批量添加模块<BR>??11、单元格文本批量转换
  • 【选择合并单元格】:选择指定区域中的所有合并区域 【让合并单元格合理分页】:如果合并单元格已跨页,打印时会造成合并区域的值仅显示在一页中,另一页空白;或者两页各显示一部分,本工具用于调整合并单元格,使其...
  • 【取消合并还原合并数据】对一列中合并后的单元格取消合并,且恢复合并前所有数据 【合并数据并复制】可以将一个区域的数据直接复制到一个单元格中 【建立图片目录】对指定文件夹下所有图片(GIF、PNG、JPG、JPEG四...
  • • 提取指定单元格的公式表达式 • 根据立方体指定参数计算公式结果 • 提取固定字符间隔的零件规格号 第3篇 创建图表和图形 • 图表种类 • 柱形图 • 条形图 • 折线图 • 饼图 • XY散点图 • 面积图 • 圆环图...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • excel的使用

    2012-11-25 17:06:01
    选中D1单元格,用鼠标指向单元格右下角的小方块“■”,当光标变成"+"后,按住鼠标拖动光标向下拖到要合并的结尾行处,就完成了B列和C列的合并。这时先不要忙着把B列和C列删除,先要把D列的结果复制一下,再用...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • │ │ 技巧72 合并单元格的同时保留所有数值.xls │ │ 技巧73 为同一个单元格里的文本设置不同格式.xls │ │ 技巧74 制作斜线表头.xls │ │ 技巧76 工作表背景图片的妙用.xls │ │ │ ├─第7章-名称的...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

vba合并指定单元格代码