当前位置: 首页 > wzjs >正文

青岛网站建设哪家聊城网站建设制作开发公司

青岛网站建设哪家,聊城网站建设制作开发公司,在阿里巴巴国际网站上需要怎么做,石家庄net网站开发实现功能如下: excel指定行列范围内的所有单元格 规则1:每一列的连续相同的值合并单元格 规则2:每一列的第一个非空单元格与其下方的所有空白单元格合并单元 规则3:优先左侧列合并单元格,合并后,右侧的单元…

实现功能如下:
excel指定行列范围内的所有单元格
规则1:每一列的连续相同的值合并单元格
规则2:每一列的第一个非空单元格与其下方的所有空白单元格合并单元
规则3:优先左侧列合并单元格,合并后,右侧的单元格的合并范围的行上下限不能超过左侧的单元格范围。

如下图:
在这里插入图片描述

Sub MergeCellsBetweenNonEmpty()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Sheet1") ' 修改为你的工作表名称Dim startRow As Long, endRow As LongDim startCol As Long, endCol As LongstartRow = 1 ' 起始行号endRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' 动态获取结束行号startCol = 1 ' 起始列号endCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' 动态获取结束列号Dim i As Long, j As LongDim firstNonEmptyRow As Long, secondNonEmptyRow As LongDim hasNonEmptyCell As BooleanDim mergeArea As Range' 禁用屏幕更新和自动计算以提高性能Application.ScreenUpdating = FalseApplication.Calculation = xlCalculationManualApplication.DisplayAlerts = False ' 禁用警告提示' 循环遍历每一列For j = startCol To endColfirstNonEmptyRow = 0secondNonEmptyRow = 0hasNonEmptyCell = False' 循环遍历每一行,查找所有符合条件的第一对非空单元格For i = startRow To endRowIf ws.Cells(i, j).Value <> "" ThenIf firstNonEmptyRow = 0 ThenfirstNonEmptyRow = i ' 找到第一个非空单元格ElseIf secondNonEmptyRow = 0 ThensecondNonEmptyRow = i ' 找到第二个非空单元格' 如果两个非空单元格之间有其他单元格,则尝试合并If secondNonEmptyRow - firstNonEmptyRow > 1 Then' 计算右侧列的合并范围Dim rightMergeStart As Long, rightMergeEnd As LongrightMergeStart = firstNonEmptyRowrightMergeEnd = secondNonEmptyRow - 1' 检查左侧列的合并范围Dim leftMergeStart As Long, leftMergeEnd As LongIf j > startCol ThenOn Error Resume NextSet mergeArea = ws.Cells(rightMergeStart, j - 1).MergeAreaOn Error GoTo 0If Not mergeArea Is Nothing ThenleftMergeStart = mergeArea.RowleftMergeEnd = leftMergeStart + mergeArea.Rows.Count - 1ElseleftMergeStart = ws.Cells(rightMergeStart, j - 1).RowleftMergeEnd = leftMergeStartEnd If' 计算重叠区域Dim overlapStart As Long, overlapEnd As LongoverlapStart = WorksheetFunction.Max(rightMergeStart, leftMergeStart)overlapEnd = WorksheetFunction.Min(rightMergeEnd, leftMergeEnd)' 如果存在重叠区域且行数大于1,则合并If overlapStart <= overlapEnd And (overlapEnd - overlapStart + 1) > 1 ThenWith ws.Range(ws.Cells(overlapStart, j), ws.Cells(overlapEnd, j)).Merge.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenterEnd WithEnd IfElse' 第一列直接合并(检查行数是否大于1)If (rightMergeEnd - rightMergeStart + 1) > 1 ThenWith ws.Range(ws.Cells(rightMergeStart, j), ws.Cells(rightMergeEnd, j)).Merge.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenterEnd WithEnd IfEnd IfEnd If' 重置 firstNonEmptyRow 和 secondNonEmptyRow,继续查找下一对firstNonEmptyRow = secondNonEmptyRowsecondNonEmptyRow = 0End IfhasNonEmptyCell = TrueEnd IfNext i' 如果找到第一个非空单元格但未找到第二个非空单元格,则尝试合并到最后一行的单元格If firstNonEmptyRow > 0 And secondNonEmptyRow = 0 ThenIf endRow - firstNonEmptyRow > 0 Then' 计算右侧列的合并范围rightMergeStart = firstNonEmptyRowrightMergeEnd = endRow' 检查左侧列的合并范围If j > startCol ThenOn Error Resume NextSet mergeArea = ws.Cells(rightMergeStart, j - 1).MergeAreaOn Error GoTo 0If Not mergeArea Is Nothing ThenleftMergeStart = mergeArea.RowleftMergeEnd = leftMergeStart + mergeArea.Rows.Count - 1ElseleftMergeStart = ws.Cells(rightMergeStart, j - 1).RowleftMergeEnd = leftMergeStartEnd If' 计算重叠区域overlapStart = WorksheetFunction.Max(rightMergeStart, leftMergeStart)overlapEnd = WorksheetFunction.Min(rightMergeEnd, leftMergeEnd)' 如果存在重叠区域且行数大于1,则合并If overlapStart <= overlapEnd And (overlapEnd - overlapStart + 1) > 1 ThenWith ws.Range(ws.Cells(overlapStart, j), ws.Cells(overlapEnd, j)).Merge.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenterEnd WithEnd IfElse' 第一列直接合并(检查行数是否大于1)If (rightMergeEnd - rightMergeStart + 1) > 1 ThenWith ws.Range(ws.Cells(rightMergeStart, j), ws.Cells(rightMergeEnd, j)).Merge.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenterEnd WithEnd IfEnd IfEnd IfEnd If' 如果该列没有非空单元格或全部是非空单元格,则不合并If Not hasNonEmptyCell Or (firstNonEmptyRow = startRow And secondNonEmptyRow = 0) ThenGoTo NextColumnEnd IfNextColumn:Next j' 新增规则:合并相邻相同内容的单元格For j = startCol To endColFor i = startRow To endRowIf ws.Cells(i, j).Value <> "" ThenDim mergeStart As LongmergeStart = i' 检查当前单元格与下一行单元格内容是否相同Do While i < endRow And ws.Cells(i + 1, j).Value = ws.Cells(mergeStart, j).Valuei = i + 1Loop' 如果合并范围的行数大于1,则合并If i > mergeStart ThenWith ws.Range(ws.Cells(mergeStart, j), ws.Cells(i, j)).Merge.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenterEnd WithEnd IfEnd IfNext iNext j' 恢复屏幕更新和自动计算Application.ScreenUpdating = TrueApplication.Calculation = xlCalculationAutomaticApplication.DisplayAlerts = True ' 恢复警告提示MsgBox "合并完成!"
End Sub

文章转载自:

http://0lGq5XEN.kcyxs.cn
http://nIYyA4Vn.kcyxs.cn
http://7uSBb3HA.kcyxs.cn
http://Bl3puHB5.kcyxs.cn
http://lk5s0g0u.kcyxs.cn
http://QXTLRHhz.kcyxs.cn
http://8IxqyEwf.kcyxs.cn
http://GDm8aPOe.kcyxs.cn
http://uJnGIqnL.kcyxs.cn
http://rb1Unpht.kcyxs.cn
http://x2l1wiKa.kcyxs.cn
http://PpwTABIE.kcyxs.cn
http://EiVkj8gI.kcyxs.cn
http://RucZgb1v.kcyxs.cn
http://TGhPubSR.kcyxs.cn
http://9WiRcsun.kcyxs.cn
http://DZ4LXpF0.kcyxs.cn
http://uj3AwFCk.kcyxs.cn
http://3EgqAlSU.kcyxs.cn
http://5ASJuuK7.kcyxs.cn
http://nu9Uv7yI.kcyxs.cn
http://rHOk8YuI.kcyxs.cn
http://donr33o7.kcyxs.cn
http://KXv8qoNO.kcyxs.cn
http://WXklHbjy.kcyxs.cn
http://0rhXDOpz.kcyxs.cn
http://vayogGes.kcyxs.cn
http://tnX6j9YI.kcyxs.cn
http://8SCEwcQt.kcyxs.cn
http://qRTyEWfv.kcyxs.cn
http://www.dtcms.com/wzjs/774682.html

相关文章:

  • 网站内容包括哪些开封到濮阳
  • 做淘宝客网站必须备案吗棋牌游戏网站模板下载安装
  • 成功英语网站网站支持asp
  • 服装购物网站策划书网站开发公司需要那些硬件设备
  • 深圳做网站 肖先生工程找队伍信息网
  • 台州小型网站建设做网站就找喇叭人
  • 一个人做网站 没有人写文章怎么办cc0图片素材网站
  • 临沭有做网站的吗买个个域名做网站咋做
  • 泉州手机端建站模板哈尔滨网络优化推广公司
  • 仿爱奇艺网站源码淘宝客论坛响应式php网站下载
  • logo设计制作网站个人网站鉴赏
  • 辛集外贸网站建设网站建设产业pest分析
  • wordpress网站做app深圳网a深圳网站建设
  • 网站中的搜索框怎么做网站建设工程师 html5
  • 企业大型网站开发需要多少钱百度认证营销顾问
  • 建站经验 网站建设学院万网域名管理控制台
  • 河源网站推广网站的竞品分析怎么做
  • 网站建设标准规范酒厂网站模板
  • 广州网站开发网络公司企业查询网站
  • 网站关键词提取工具360网页版登录入口
  • 服装厂做1688网站效果好不好10个网站
  • 企业网站建设讲解万网网站根目录
  • 手机网站是怎么制作的山西营销型企业网站开发
  • 做微网站公司网站的建设方式
  • 防伪网站怎么做网站维护目标
  • 上海文明城市建设网站广州建站公司有哪些
  • 网站改版具体建议装修公司排行榜十大排名
  • 网站开发建设好处wordpress api 自定义
  • 移动网站建设cnfgwordpress 链接重定向
  • 成交型网站建设公司江苏润通市政建设工程有限公司网站