请各位大神帮忙处理一个用于打印纸质标签贴纸的文档
excel吧
全部回复
仅看楼主
level 5
牧民欢歌 楼主
我需要在A4纸大小的标签纸上打印每个人员的贴纸,一张A4打印30个小标签(3*10),每个人的都不一样,没有重复的,编号是有规律性的,7位数组成,都是以277或278或279开头,第四五位是工组号,六七位是座位号。然后我要把每个小标签纸切下来张贴在每个工位上。下图中只有150多个人,实际上有好几百人。我的想法是把同一部门的按座位号的顺序放在同一纸a4标签纸上,每纸放30个人,如果某部门的剩下的不足30人,比如科研部的第二张只剩下20人,则第二张只打印这20人,而不要把下一个部门的补上10。旁边做“上一张”和“下一张”的按钮。打印完第一张,点下一张即可继续打印。用公式也行,用VB也行。每个小标签之间的空白行或列不能删除,因为那里是切割线。请大神帮忙处理一下。谢谢。
数据如下:
A4标签纸布局如下:
2026年06月21日 07点06分 1
level 5
牧民欢歌 楼主
我的思路是把每个人的编号先安排进去,然后根据编号把其他信息查找出来,但是我不知怎样把这些编号按30人一张安排进去[勉强],手动一个一个输入的话,有大几百个,而且这种工作不是一次性的,经常要做,且每次安排,每个人的座位都不相同。[汗]
2026年06月21日 07点06分 2
level 8
其他的方式我不会,我会写一个vba代码,运行一下就好了
2026年06月21日 07点06分 3
level 12
2026年06月21日 08点06分 4
level 12
2026年06月21日 08点06分 5
level 12
大概这个意思,这样每次改变部门,自动变化,反正按照序号来。超过31个人的可以另外弄个工作表31-60,61-90,单独打印
2026年06月21日 08点06分 6
level 1
上淘宝10块搞定。
2026年06月21日 09点06分 7
试过,标10元只是引流。不是不愿意出,实价要10乘以大几十。近千
2026年06月24日 09点06分
@牧民欢歌 你是遇见黑店宰客了,实现这需求10来行代码就搞定。要不去excelhome论坛,那里随便白嫖。
2026年06月24日 23点06分
level 3
这个需求显然应该用word和Excel结合来做,效率会很高,只用Excel是给自己找麻烦。思路就是小学六年级就学过的邮件合并,只不过先把word的纸张给设置成一个标签的大小,最后打印的时候,一张A4纸打印好几页标签。
2026年06月21日 17点06分 8
word的打印没有每版打印30页这项,又没有自定义。而且,每行小标签之间是没有间隔的,因为切割的小标签之间,已经有预切割线。打印时每版打印N页,标签之间有间隔,这点无法做到。
2026年06月24日 03点06分
level 11
文件脱敏发出来,我vba写代码
2026年06月21日 18点06分 9
2580
2026年06月21日 18点06分
00768
2026年06月21日 18点06分
level 10
=DROP(REDUCE(,A:.A,LAMBDA(w,z,IF(ROW(z)*3-4>ROWS(A:.A),w,IFNA(VSTACK(w,"",REDUCE(TOCOL(A1:C1),OFFSET(A1,ROW(z)*3-{5;4;3},,,6),LAMBDA(x,y,IF(AND(y=0),x,HSTACK(x,"",TAKE(x,,1),INDEX(y,{1;2;3}),INDEX(D1:F1,{1;3;2})&"",INDEX(y&"",{4;6;5})))))),"")))),2,2)
2026年06月22日 01点06分 10
吧务
level 15
和工资条的做法类似
ROW(A4)/4*3 是因为每个标签有4行,每行有3组.
COLUMN(E1)/5是因为每个标签有5列
-2是因为上面两个的和是4, 4-2是要取的第一组值在原始位置的行号.
2026年06月22日 02点06分 11
其它位置的公式只需要改参数1 $A:$A的列标A即可.
2026年06月22日 02点06分
实现了基本功能,但是靠下拉,几百人的数据,页面设置稍微有点变化,下面的全部都无法对应页面上打印。如果有个上一页下一页按钮就好了。
2026年06月24日 09点06分
level 13
得上vba
2026年06月22日 05点06分 12
请教[玫瑰]
2026年06月24日 09点06分
@牧民欢歌 就是跑个循环就完事了,你说分页那些都能实现,只是我不太想搞这种,要反复调试太麻烦了,而且贴吧发代码老是识别成网址然后被吞
2026年06月24日 09点06分
level 5
关于你提到的问题,其实我已经关注好几天了。只是没想到楼主对每个人的提问都进行了回复,看得出来楼主的用心了
我目前使用的是 Excel 2021,之前尝试保存一个包含 EVALUATE 宏函数的文件时,遇到了不少麻烦,连文件类型都改变了,基于此,我感觉vba和他是一个东西,就没敢用vba,不过,对于你提到的功能应该也可以用常规方法实现
我觉得,要实现你的需求,核心在于解决以下两个问题:
1. 如何让标签实现一一对应?
关于这一点,吧主其实已经给出了很好的解决方案。我参考了他的思路进行了延伸,编写了一个更容易理解的 Excel 函数公式,也能适用更多种复杂的情况。
2. 如何在打印时固定标签排版?(每行3个,每列10个,共30个)
如果继续深入话也就是另一个困难点:在已经拥有单元格数组公式的前提下,如何批量插入表格分页符。
关于问题二,我也是最近才摸索出解决办法。因为发这条留言时已经比较晚了,我打算明天整理一下思路,再来详细分享我的方法。
下面我先附上问题1我的公式、以及部分说明。你可以先看看图片中的呈现效果,看是否符合你的预期不?
引用说明:(以3行N列标签为例)
基准点列偏移量 x 18
基准点行偏移量 y 1
标签长度(列周期) T1 5
标签宽度(行周期) T2 4
矩阵列序数 j 3
INDEX引用列 $列:$列 $A:$A
INDEX起始序号 a 2
=LET(
a, $C$1,
b, $C$2,
c, $C$3,
d, $C$4,
e, $C$5,
f, QUOTIENT(COLUMN()-a, c),
g, MOD(COLUMN()-a, c),
h, QUOTIENT(ROW()-b, d),
i, MOD(ROW()-b, d),
j, (f + g) + e * (h + i - 1),
k, INDEX($A:$A, j + 1),
k
)
2026年06月24日 20点06分 13
那个标签引用说明应该是我笔误,实际为,以总计 3列N行标签为例,这里的标签不是指标签的长宽,而是指在整个标签矩阵中,矩阵的行数和列数
2026年06月24日 20点06分
1