ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎样用VBA把座次表的姓名转为座签姓名?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-12-3 23:02 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

举办会议,经常需要把座次表中的姓名打印成座签,贴到会议室的坐位上。怎样用用VBA把座次表中的姓名快速转为座签?
座次表为excel文件,座签为WORD文件(也只可以是excel文件)。
如下附件。 test.zip (11.33 KB, 下载次数: 12)

TA的精华主题

TA的得分主题

发表于 2024-12-4 01:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
转换的规则是什么?每行几个姓名

另外,为什么一定要转换到Word中,在Excel中调整字体字体和单元格尺寸,直接打印会更方便吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-4 06:53 来自手机 | 显示全部楼层
本帖最后由 xinxin2021 于 2024-12-4 07:17 编辑
taller 发表于 2024-12-4 01:51
转换的规则是什么?每行几个姓名

另外,为什么一定要转换到Word中,在Excel中调整字体字体和单元格尺寸 ...


座次表是一排7人(也就是一行7人),几排不限。转换规则如下:

1.转换的结果一行可以是三个姓名,姓名多了不方便打印,因为姓名的字体比较大。字体型号宋体,大小要醒目。

2.转换结果第一页是座次表的第一列到第三列的前三行,第二页是座次表第四列到第六列的前三行,第三页是座次表第七列的前三行。

第四页是座次表第一列到第三列的第四行到第六行,第五页是第四列到第六列的第四行到第六行,第六页是第七列的第四行到第六行。

以此类推。

3.转换结果可以是excel。只要能转换,转换结果是什么文件不限。

TA的精华主题

TA的得分主题

发表于 2024-12-4 07:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-12-4 07:57 | 显示全部楼层
请自行调整模板Sheet2工作表中单元格尺寸使得可以填充满一页

座次表.7z (20.61 KB, 下载次数: 36)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-4 18:25 | 显示全部楼层

怎样用vba设计一个程序,

本帖最后由 xinxin2021 于 2024-12-4 18:30 编辑
taller 发表于 2024-12-4 07:57
请自行调整模板Sheet2工作表中单元格尺寸使得可以填充满一

你的解决方案已经很好了,感谢您!不过,我想把规则再优化一下,让程序使用起来更方便。优化的规则如下:

座次表是一排N个人(也就是一行有N个姓名),几排不限。转换规则如下:

1.转换的结果一行有三个姓名(姓名多了不方便打印,因为姓名的字体比较大。字体型号宋体,大小要醒目)。


2.转换结果首先(前一页或前几页)是座次表的第一列到第三列的所有姓名,其次(中间一页或中间几页)是座次表第四列到第六列的所有姓名,
再次(最后一页或最后几页)是座次表第七列到第九列的所有姓名。
以此类推。

3.要考虑座次表姓名列数是“3+1”或“3的倍数+1”的情况。比如,座次表有4列,或有7列,或有10列,或有13列,有16列……。

如果座次表只有4列,那么转换结果首先(前一页或前几页)是座次表的第一列到第三列的所有姓名,其次(中间一页或中间几页)是座次表第四列的所有姓名
如果座次表只有7列,那么转换结果首先(前一页或前几页)是座次表的第一列到第三列的所有姓名,其次(中间一页或中间几页)是座次表第四列到第六的所有姓名,再次(最后一页或最后几页)是座次表第七列的所有姓名。
如果座次表有10列,那么转换结果首先(前一页或前几页)是座次表的第一列到第三列的所有姓名,其次是座次表第四列到第六的所有姓名,再次是座次表第七列到第九的所有姓名,最后是是座次表第10列的所有姓名。
以此类推。
4.转换结果是excel格式。


TA的精华主题

TA的得分主题

发表于 2024-12-4 21:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
抢占一个沙发。顶一下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-20 21:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

这个代码相当好!不过,想再修改一下,让程序更实用,好上加好,你看这样可以吗?一是每个桌签加上一个编号,从1开始,可以加在姓名右侧,如附件的样式。二是桌签按编号排列,打到A4纸上,每张纸10个桌签(姓名)。样式如附件。

桌签.rar (12.32 KB, 下载次数: 5)

TA的精华主题

TA的得分主题

发表于 2024-12-21 09:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub test()
  2.     Dim r%, i%
  3.     Dim arr, brr
  4.     With Worksheets("座次表")
  5.         r = .UsedRange.Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious).Row
  6.         c = .UsedRange.Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByColumns, searchdirection:=xlPrevious).Column
  7.         arr = .Range("a3").Resize(r - 2, c)
  8.     End With
  9.     With Worksheets("桌签")
  10.         .Cells.ClearContents
  11.         m = 1
  12.         n = 1
  13.         s = 0
  14.         For i = 1 To UBound(arr)
  15.             For j = 1 To UBound(arr, 2)
  16.                 If Len(arr(i, j)) <> 0 Then
  17.                     s = s + 1
  18.                     .Cells(m, n) = arr(i, j)
  19.                     .Cells(m, n + 1) = s
  20.                     n = n + 4
  21.                     If n > 5 Then
  22.                         n = 1
  23.                         m = m + 3
  24.                     End If
  25.                     If s Mod 10 = 0 Or (i = UBound(arr) And j = UBound(arr, 2)) Then
  26.                         .PrintOut
  27.                         .Cells.ClearContents
  28.                         m = 1
  29.                         n = 1
  30.                     End If
  31.                 End If
  32.             Next
  33.         Next
  34.     End With
  35. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2024-12-21 09:14 | 显示全部楼层
参与一下。

桌签.rar

31.1 KB, 下载次数: 11

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-12-25 16:09 , Processed in 0.040990 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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