论坛风格切换切换到宽版
  • 8060阅读
  • 25回复

笨人笨办法之用Excel批量打印QSL卡片 [复制链接]

上一主题 下一主题
离线BG4OQX
发帖
23
只看该作者 20楼 发表于: 2009-12-18
不错,比较实用。
离线BG6CFP
发帖
93
只看该作者 21楼 发表于: 2010-04-20
有机会试一下
离线BG4JTY
发帖
28
只看该作者 22楼 发表于: 2010-04-28
更换无线电会徽(清晰版)
'
笨人笨办法之用excel批量打印qsl卡片
作者:bd5cdi 本贴转自无线电dx联盟 www.cqcqcq.com.cn
通联多了,填写卡片是件头痛的事,当然你可以打印成标签一张一张贴,但当卡片用完了或者还没来得及印卡片的时候,用卡纸打印不失为一个好办法。老ham有用专门软件的,如bv7等,下载安装后却一头雾水,好象还要先制作模板,挺复杂的,只好放弃了。有将excel与word结合起来,使用邮件合并功能快速批量打印的,不过用邮件合并稍显复杂。偶尔在网上找到一篇用excel vlookup函数实现批量打印功能的文章,觉得很方便、很实用,于是乎拿来主义,依葫芦画瓢做了模板用excel批量打印qsl卡片,试用后自我感觉还不错。
先用excel建立模板:

sheet2 为通联记录

为实现批量打印,还得新建宏,不会vb,只好照抄,不过还很管用
sub dy()
  on error resume next
  x = inputbox("请输入打印起始序号:", "提示")
  y = inputbox("请输入打印结束序号:", "提示")
  for i = x to y
  cells(2, 2) = i
  activewindow.selectedsheets.printout from:=1, to:=1, copies:=1, collate:=true
  i = cells(2, 9)(为实现一张卡片打印多条记录,记数器重置了一下)
  next i
  end sub
功能实现:
b2为记数器,在b2中输入数字即可打印对应序号的qso记录
c11为对方呼号,根据b2中数值在sheet2对应行中第三例查找呼号
函数为:=vlookup(b2,sheet2!a1:g1000,3,false)
b15-f15为对应的日期、时间、波段、rst和模式,函数同上。
为实现一张卡片打印多条记录,先在i16-n20中依据上述方法查找出b2+1至b2+5(共打印6条记录)的qso,同时在i2将记数器重置,若呼号相同,则记数器累进1,函数为:
=if(i20=c11,b2+5,(if(i19=c11,b2+4,(if(i18=c11,b2+3,if(i17=c11,b2+2,if(i16=c11,b2+1,b2)))))))
下面就简单了,
b16:如果i16=c11即呼号相同,则i16=j16否则打印“—”,其它记录同理。
接下来把b2字体颜色设为白色,免得打印出来,把g例以后的都隐藏起来,在sheet2插入记录后就可以打印了。
注意:log导出转换成excel按固定格式编缉好复制到sheet2中,序号要大于实际qso数5以上,避免最后4条记录无法打印或打印出错符号,不要在sheet2直接编辑,以免出错。


现在可以开始打印了,运行宏,按提示输入,放入事先裁好的纸张(别忘了设置好打印纸尺寸),然后就看你的打印机的速度了,用hp1020打了近700张卡片耗时近4个小时,你所要做的只是加纸再加纸。


'
离线BG2BJI
发帖
58
只看该作者 23楼 发表于: 2010-06-06
咱的qsl卡是,用ps做的,用习惯了这东东,做车标贴,做网页时用图等都用这东东来做,方便呀!
离线HAMHAM
发帖
1263
只看该作者 24楼 发表于: 2010-06-27
强!!!收藏!!
离线BG8FAV
只看该作者 25楼 发表于: 2010-06-30
不错,不过用幻灯片制作更方便一些。