zoukankan      html  css  js  c++  java
  • EXCEL 取消合并单元格保留数据 宏 VBE

    1、启用宏

    2、Alt F11 

    代码如下(去除中文):

    
    Sub CancelMergeCells()
    
    Dim r As Integer,MergeStr As String,MergeCot As Integer,i As Integer
    
    Dim rng As Range
    
    On Error Resume Next
    
    选择需要合并的列,由用户进行制定,并限定值
    
    Set rng = Application.InputBox("请输入需要合并的列", "区域选择", , , , , , 8)
    
    将用户指定的单元列取得行号
    
    k = rng.Column
    
    With Sheet1
    
    取得最大循环数
    
    r = .Cells(.Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To r
    
    将合并单元格赋值给到变量
    
    MergeStr = .Cells(i, k).Value
    
    计算合并单元格区域的大小
    
    MergeCot = .Cells(i, k).MergeArea.Count
    
    取消合并单元格
    
    .Cells(i, k).UnMerge
    
    将取消的单元格进行赋值填充
    
    .Range(.Cells(i, k), .Cells(i + MergeCot - 1, k)).Value = MergeStr
    
    循环的步长进行累加,减少循环的次数
    
    i = i + MergeCot - 1
    
    Next
    
    添加边框线,数据美化
    
    .Range("A1:C" & r).Borders.LineStyle = xlContinuous
    
    End With
    
    End Sub

    3、添加按钮指定宏

    4、点击按钮选中列(不需输入直接选中列即可)

    MrNou
  • 相关阅读:
    171-滑动窗口问题
    170-133. 克隆图
    169-150. 逆波兰表达式求值
    windows相对路径设置与取消小工具[提效]
    Sword 38
    Sword 33
    Sword 28
    Sword 26
    Sword 12
    Sword 07
  • 原文地址:https://www.cnblogs.com/yangsirc/p/12628228.html
Copyright © 2011-2022 走看看