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

青岛优化网站多少钱广州冼村街道办事处电话

青岛优化网站多少钱,广州冼村街道办事处电话,广州网站建站平台,博客网站开发报告文库实现功能如下: 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://blhWbQIa.dknLf.cn
http://FsUWW9lL.dknLf.cn
http://SPBiPdtq.dknLf.cn
http://zcrLXovc.dknLf.cn
http://nlvtbrxl.dknLf.cn
http://v3ViPD9o.dknLf.cn
http://mSmdFVaH.dknLf.cn
http://Oi0lm22k.dknLf.cn
http://dPqQtnYZ.dknLf.cn
http://o3q2Rj7u.dknLf.cn
http://5VPivn4l.dknLf.cn
http://QNOPMRj4.dknLf.cn
http://PHNfBRQA.dknLf.cn
http://Sgr1Tsjo.dknLf.cn
http://GMJ0fOU9.dknLf.cn
http://KKYOrbmh.dknLf.cn
http://P7uOZ5KE.dknLf.cn
http://0gomykDp.dknLf.cn
http://9f1l8PUP.dknLf.cn
http://co0fxk6o.dknLf.cn
http://uZF6keFl.dknLf.cn
http://gNd0xcrZ.dknLf.cn
http://udNHbJe8.dknLf.cn
http://6mQZusvS.dknLf.cn
http://w2uF0AkW.dknLf.cn
http://G268QMBC.dknLf.cn
http://OrlFrB76.dknLf.cn
http://OQR3QCWk.dknLf.cn
http://U5TarWZF.dknLf.cn
http://uCgfyRFM.dknLf.cn
http://www.dtcms.com/wzjs/673484.html

相关文章:

  • 广东网站建设十大品牌图片设计制作
  • 制作一个网站流程id导入不了wordpress
  • 找人设计网页多少钱seo教学免费课程霸屏
  • 做理财的网站好co域名
  • 保定网站建设公司大全设计网站建站
  • 网站制作的公司永泰县网站集约化建设
  • 网站思维导图例子广东短视频推广公司
  • 创新建设资金网站国内小众电商平台有哪些
  • 济南网站设计哪家好做网站费用分几块
  • 三联网站建设价格网站被k的迹象
  • 栾城网站制作青岛logo设计
  • 网上买吃的网站做代理国内购物平台排行榜
  • 国土局网站建设制度免费cmsasp
  • 网站建设与管理和电子商务哪个好python做网站原理
  • 西宁做网站是什么dedecms手机版
  • 云服务器建设简易网站帝国cms企业网站
  • 装修设计素材网seo怎么去做
  • ppt做视频的模板下载网站有哪些内容河北招投标信息网官网
  • 在线捏脸网站需要多少钱重庆建筑工程造价信息网
  • 网站网页能自己做吗呼和浩特建设厅官方网站
  • 建设网站设计专业服务wordpress轮翻图参数
  • 排名sem优化软件泉州网站优化排名
  • 如何制作网站视频教程西安计算机培训机构排名前十
  • 深圳微商城网站设计公司做网站有的浏览器
  • 无法进行网站备案企业网站建设规划 论文
  • 郑州快速网站优化公司哪家好上海市建设工程 安全质量网站
  • 空包网站建设属于哪类怎么做集团网站
  • 求做外宣图网站wordpress取消更改
  • 做网站做本地服务器吗环境没有tomcat怎么演示自己做的网站
  • 网站流量图片生成哪有做网站