将execl所有表格的某两列的合并为一列,并且携带原来格式

Sub FormatAndMergeCells()
    Dim ws As Worksheet
    Dim rng As Range
    Dim i As Integer
    Dim beforeDash As String
    Dim afterDash As String
    Dim myCell As Range

    ' 遍历所有工作表
    For Each ws In ThisWorkbook.Worksheets
        ' 设置H3:H100的数据格式
        Set rng = ws.Range("H3:H100")
        With rng.Font
            .Name = "宋体" ' 对应宋体
            .Size = 10
            .Bold = False
        End With

        ' 设置J3:J100的数据格式
        Set rng = ws.Range("J3:J100")
        With rng.Font
            .Name = "华文行楷" ' 对应华文行楷
            .Size = 10
            .Bold = False
        End With

        ' 合并H列和I列的同一行数据,输出到C列
        For i = 3 To 100
            ws.Range("C" & i).Value = ws.Range("H" & i).Value & "-" & ws.Range("J" & i).Value

            ' 假设我们要处理的单元格是Ci
            Set myCell = ws.Range("C" & i)

            ' 找到"-"因素在单元格中的位置
            Dim dashPos As Integer
            dashPos = InStr(myCell.Value, "-")

            ' 如果"-"存在,则分割字符串并设置字体和字号
            If dashPos > 0 Then
                ' 分割字符串
                beforeDash = Left(myCell.Value, dashPos - 1)
                afterDash = Mid(myCell.Value, dashPos + 1)

                ' 清空C2中的内容
                myCell.Value = ""

                ' 首先输入"-"之前的部分,并设置字体和字号
                myCell.Value = beforeDash
                With myCell.Characters(Start:=1, Length:=Len(beforeDash)).Font
                    .Name = "宋体"
                    .Size = 10
                    .Bold = False
                End With

                ' 然后输入 "-" 和 "-"之后的部分,并设置字体和字号
                myCell.Value = myCell.Value & afterDash
                With myCell.Characters(Start:=Len(beforeDash) + 1, Length:=Len(afterDash) + 1).Font
                    .Name = "华文行楷"
                    .Size = 10
                    .Bold = False
                End With
            End If
        Next i
    Next ws
End Sub
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值