ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 120|回复: 3

WPS 表格合并单元格后的结果不对?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-18 15:15 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ning84 于 2024-10-18 17:16 编辑


image.png

珠海图书馆06号机器

image.png


image.png




image.png



应该得到的结果

image.png

K91.zip

113.68 KB, 下载次数: 2

K91.zip

107.26 KB, 下载次数: 2

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-18 16:06 | 显示全部楼层






  1. Function K9BaseDateArr()
  2.    Dim Arr(29)
  3.        Arr(0) = Array("车站", "路段", "时间", "行驶时间", "行驶距离")
  4.        Arr(1) = Array("三灶车场", "琴石路", 0.572916666666667, "发车", "<1千米")
  5.        Arr(2) = Array("映月新村", "映月路", 0.574305555555556, "2分钟", "<1千米")
  6.        Arr(3) = Array("唐人街", "伟民路", 0.575694444444444, "4分钟", "<1千米")
  7.        Arr(4) = Array("月堂", "金海岸大道西", 0.577083333333333, "6分钟", "1.2千米")
  8.        Arr(5) = Array("中南修理厂", "金海岸大道西", 0.577777777777778, "7分钟", "1.6千米")
  9.        Arr(6) = Array("鱼弄", "金海岸大道东", 0.579861111111111, "10分钟", "2.7千米")
  10.        Arr(7) = Array("城建总公司", "金海岸大道东", 0.580555555555556, "11分钟", "3.6千米")
  11.        Arr(8) = Array("斜尾", "金岛路", 0.581944444444444, "13分钟", "3.9千米")
  12.        Arr(9) = Array("金沙湾豪庭", "金岛路", 0.582638888888889, "14分钟", "4.7千米")
  13.        Arr(10) = Array("金海岸中学", "金岛路", 0.583333333333333, "15分钟", "5.2千米")
  14.        Arr(11) = Array("金都大厦", "金岛路", 0.584027777777778, "16分钟", "5.6千米")
  15.        Arr(12) = Array("金岛路东", "金岛路", 0.585416666666667, "18分钟", "6.0千米")
  16.        Arr(13) = Array("东咀", "金岛路", 0.586111111111111, "19分钟", "6.4千米")
  17.        Arr(14) = Array("青湾", "金湾路(S272)", 0.588194444444444, "22分钟", "7.8千米")
  18.        Arr(15) = Array("金湾高尔夫", "金湾路(S272)", 0.590277777777778, "25分钟", "9.8千米")
  19.        Arr(16) = Array("二号闸", "金湾路(S272)", 0.592361111111111, "28分钟", "11千米")
  20.        Arr(17) = Array("时代山湖海", "金湾路(S272)", 0.59375, "30分钟", "12千米")
  21.        Arr(18) = Array("保利香槟", "金湾路(S272)", 0.594444444444444, "31分钟", "13千米")
  22.        Arr(19) = Array("湖心路口", "珠海大道中(S366)", 0.596527777777778, "34分钟", "14千米")
  23.        Arr(20) = Array("翠湾", "珠海大道西(S366)", 0.607638888888889, "50分钟", "26千米")
  24.        Arr(21) = Array("华发新城", "珠海大道西(S366)", 0.613888888888889, "59分钟", "33千米")
  25.        Arr(22) = Array("白石(银石雅园)", "九洲大道西(S366)", 0.617361111111111, "1小时4分钟", "35千米")
  26.        Arr(23) = Array("兰埔(富华里)", "九洲大道西(S366)", 0.618055555555556, "1小时5分钟", "36千米")
  27.        Arr(24) = Array("隧道南", "迎宾南路", 0.621527777777778, "1小时10分钟", "37千米")
  28.        Arr(25) = Array("柠溪", "柠溪路", 0.624305555555556, "1小时14分钟", "39千米")
  29.        Arr(26) = Array("香宁花园", "柠溪路", 0.627083333333333, "1小时18分钟", "40千米")
  30.        Arr(27) = Array("南香里", "柠溪路", 0.628472222222222, "1小时20分钟", "41千米")
  31.        Arr(28) = Array("南坑", "紫荆路", 0.629166666666667, "1小时21分钟", "42千米")
  32.        Arr(29) = Array("香洲", "紫荆路", 0.630555555555556, "1小时23分钟", "42千米")

  33.        K9BaseDateArr = Arr
  34. End Function


  35. Sub Ll()
  36.    Dim UnionDict As Scripting.Dictionary
  37.        Set UnionDict = New Scripting.Dictionary
  38.      
  39.      Dim Str, Arr
  40.          Arr = K9BaseDateArr
  41.      Dim Pres As Presentation
  42.          Set Pres = Application.ActivePresentation
  43.      Dim Sld As Slide, Slds As Slides
  44.          Set Slds = Pres.Slides
  45.      Dim Shp As Shape, Shps As Shapes, oTab As Table
  46.          Set Sld = Slds(1)
  47.          For ii = Sld.Shapes.Count To 1 Step -1
  48.               Set Shp = Sld.Shapes(ii)
  49.               Shp.Delete
  50.          Next ii
  51.      Dim oRow, oCol, Ll, Tt, Ww, Hh
  52.          oRow = (UBound(Arr) + 1)
  53.          oCol = 6
  54.          Ll = 10
  55.          Tt = 5
  56.          With Pres.PageSetup
  57.               Ww = .SlideWidth * 2 / 3
  58.               Hh = .SlideHeight
  59.          End With
  60.          Set Shps = Sld.Shapes
  61.          Set oTab = Shps.AddTable(oRow, oCol, Ll, Tt, Ww, Hh).Table
  62.          Set Shp = Shps(Shps.Count)
  63.          SetTable oTab, Arr
  64.          Shp.Name = "L9Table"
  65.          For Each Shp In Sld.Shapes
  66.               Debug.Print Shp.Name, Shp.Type
  67.          Next Shp
  68.          
  69. End Sub

  70. Function SetTable(oTable As Table, Arr)
  71.    Dim Dict As Scripting.Dictionary
  72.        Set Dict = New Scripting.Dictionary
  73.    Dim Str, oStr
  74.       With oTable
  75.            
  76.            For ii = 0 To UBound(Arr)
  77.                If ii > 0 Then
  78.                    .Cell(ii + 1, 1).Shape.TextFrame2.TextRange.Text = ii
  79.                End If
  80.                For jj = 0 To 4
  81.                    If jj = 2 Then
  82.                         .Cell(ii + 1, jj + 2).Shape.TextFrame2.TextRange.Text = Format(Arr(ii)(jj), "h:mm")
  83.                    Else
  84.                         .Cell(ii + 1, jj + 2).Shape.TextFrame2.TextRange.Text = Arr(ii)(jj)
  85.                    End If
  86.                    If jj = 1 Then
  87.                        Dict(Arr(ii)(jj)) = Dict(Arr(ii)(jj)) & "," & ii
  88.                    End If
  89.                Next jj
  90.            Next ii
  91.            '.Cell(5, 3).Merge .Cell(8, 3)
  92.       
  93.       End With
  94.       
  95.       
  96.       With Dict

  97.            For ii = 0 To .Count - 1
  98.                  Debug.Print .Keys(ii),
  99.                  Str = .Items(ii)
  100.                  Str = Mid(Str, 2, Len(Str))
  101.                  ss = Split(Str, ",")
  102.                  If UBound(ss) > 1 Then
  103.                      
  104.                      Debug.Print ss(0), ss(UBound(ss))
  105.                      
  106.                      oTable.Cell(ss(0) + 1, 3).Merge oTable.Cell(ss(UBound(ss)) + 1, 3)
  107.                      
  108.                  End If
  109.                  
  110.            Next ii
  111.       End With

  112. End Function
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-19 02:22 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ning84 发表于 2024-10-18 16:06

AI的解答。


在 WPS VBA 中,您可以使用以下代码来设置 PPTM 文件中表格的边框线。请注意,这段代码可能需要根据您的具体需求进行调整。

Sub SetTableBorder()
    Dim ppt As Presentation
    Dim slide As Slide
    Dim table As Table
    Dim row As Row
    Dim cell As Cell
   
    ' 打开 PPTM 文件
    Set ppt = Presentations.Open("C:\path\to\your\file.pptm")
   
    ' 获取第一张幻灯片
    Set slide = ppt.Slides(1)
   
    ' 获取幻灯片中的第一个表格
    Set table = slide.Shapes(1).Table
   
    ' 遍历表格的所有行和单元格
    For Each row In table.Rows
        For Each cell In row.Cells
            ' 设置单元格边框为黑色实线
            cell.Borders.LineStyle = xlContinuous
            cell.Borders.Color = RGB(0, 0, 0)
            cell.Borders.Weight = xlThin
        Next cell
    Next row
   
    ' 保存并关闭 PPTM 文件
    ppt.Save
    ppt.Close
End Sub

这段代码首先打开一个 PPTM 文件,然后获取第一张幻灯片中的第一个表格,并遍历表格的所有行和单元格,设置它们的边框为黑色实线。最后,保存并关闭 PPTM 文件。

请注意,您需要根据实际情况调整代码,例如幻灯片的编号、表格的编号等。此外,您可能需要根据需求调整边框的样式、颜色和粗细。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-19 16:30 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ning84 发表于 2024-10-19 02:22
AI的解答。



Ppt表格与Excel表格不一样,结果 ppt合并单元格肯定与Excel合并单元格不一样,所以这个帖子给你提就有问题。


PowerPoint(PPT)和Excel在合并单元格方面有一些显著的区别,主要体现在合并方式、对齐方式以及应用场景上。以下是具体的区别:

### 合并方式

- **PPT合并单元格**:在PPT中,合并单元格的操作相对简单,主要通过选中需要合并的单元格,然后使用右键菜单中的“合并单元格”命令,或者通过功能区的“布局”→“合并”→“合并单元格”按钮来完成。
- **Excel合并单元格**:Excel提供了三种合并单元格的方式:合并单元格、合并后居中和跨越合并。每种方式都有两种方法,一种是通过功能选项,另一种是通过快捷键。

### 对齐方式

- **PPT合并单元格**:PPT合并单元格后,通常保持左上角单元格的对齐方式。
- **Excel合并单元格**:Excel提供了更多的对齐选项,包括合并后居中和跨越合并,这些选项允许用户根据需要调整合并后单元格的对齐方式。

### 应用场景

- **PPT合并单元格**:主要用于创建具有特定布局和设计的表格,以增强视觉呈现效果,适合在演示文稿中使用。
- **Excel合并单元格**:适用于需要进行复杂的数据处理和分析,如数据透视表、条件格式化等,适合在数据分析和报告中使用。

### 其他功能差异

- **PPT表格编辑功能**:PPT的表格编辑功能相对简单,主要集中在插入、设计和布局上,适合快速创建和修改简单的表格结构。
- **Excel表格编辑功能**:Excel提供了丰富的表格编辑功能,包括数据透视表、条件格式化、图表创建等,适合进行深入的数据分析和可视化处理。

总的来说,PPT和Excel在合并单元格方面各有特点,选择哪种工具取决于具体的使用场景和需求。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 16:57 , Processed in 0.043688 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表