如何在Excel中用VBA批量生成“照相机“图片

左手的ㄟ右手 2022-11-22 00:04 344阅读 0赞

什么?你不知道照相机是什么??那参见我这篇文章吧

Excel做数据海报

需求描述

目前的状况是这样的,我有1个总表,26个子表.26个子表是按照总表的某个字段拆分出来的.然后我需要生成26个子表的照相机图片
在这里插入图片描述

VBA

  1. Private Sub pictureSheet()
  2. Dim Sht As Worksheet
  3. Dim iSht As Worksheet
  4. Dim iCnt%,eRow%,eCol%
  5. IMG_NAME = "img" '用于存放图片的工作表
  6. iCnt = 1 '图片编号.不需要图片名称的可以忽略
  7. Set iSht = ActiveWorkbook.Sheets(IMG_NAME)
  8. For Each Sht In ActiveWorkbook.Sheets
  9. If Sht.Name <> "总表" And Sht.Name <> "base" And Sht.Name <> "img" Then '这里排除不需要生成图片的表名
  10. If Sht.Visible = xlSheetVisible Then '这里是防止报错中断的时候,接着前面的图继续生成而做的措施
  11. With Sht
  12. eCol = .Cells(2,.Columns.Count).End(xlToLeft).Column
  13. eRow = .Cells(.Rows.Count,1).End(3).Row
  14. .Activate
  15. Application.Wait Now + TimeValue("00:00:01") '因为调用剪切板的时候Excel经常会报错,故需休眠1秒,下面两处同理
  16. .Range(.Cells(1,1),.Cells(eRow,eCol)).CopyPicture
  17. Application.Wait Now + TimeValue("00:00:01")
  18. iSht.Select
  19. Application.Wait Now + TimeValue("00:00:01")
  20. iSht.Paste
  21. Selection.Name = iCnt
  22. Selection.Formula = "='" & Sht.Name & "'!" & .Range(.Cells(1,1),.Cells(eRow,eCol)).Address
  23. Application.CutCopyMode = False
  24. iCnt = iCnt + 1
  25. End With
  26. End If
  27. End If
  28. Next
  29. End Sub

通过这段代码可以将26张图片自动存放在img工作表,并按生成时间自动编号.

实际过程中经常会报错,这时候就需要你手动调整了

发表评论

表情:
评论列表 (有 0 条评论,344人围观)

还没有评论,来说两句吧...

相关阅读

    相关 excel批量生成条形码

    首先我们需要下载一个条码字体包 我这里使用的是barcode39,还有barcode128格式的,大家可以根据需要的条码自行修改 然后我们在excel中的第一列放入条码值,