使用VBA快速生成Excel工作表非连续列图片快照

devtools/2024/12/22 1:25:29/

Excel中示例数据如下图所示。

在这里插入图片描述

现在需要拷贝A2:A15,D2:D15,J2:J15,L2:L15,R2:R15为图片,然后粘贴到A18单元格,如下图所示。

在这里插入图片描述

大家都知道VBA中Range对象有CopyPicture方法可以拷贝为图片,但是如果Range对象为非连续区域,那么将产生1004错误,例如:Range("A2:A15,D2:D15").CopyPicture

示例代码如下。

Sub CopyMultiAreasRange()Dim sRng As Range, firstC As Range, lastC As RangeWith ThisWorkbook.Sheets(2)Set sRng = .Range("A2:A15,D2:D15,J2:J15,L2:L15,R2:R15")Set firstC = sRng.Areas(1).Cells(1)With sRng.Areas(sRng.Areas.Count)Set lastC = .Cells(.Cells.Count)End WithFor i = firstC.Column To lastC.ColumnIf Intersect(sRng, .Columns(i)) Is Nothing Then.Columns(i).Hidden = TrueEnd IfNextRange(firstC, lastC).CopyPicture xlPrinter, xlPicture.Range("A18").Select.Paste.Columns.Hidden = FalseEnd With
End Sub

【代码解析】
第4行代码获取指定单元格范围(一些简称为源数据)。
第5行代码获取源数据的第一个单元格。
第6~8行代码获取源数据的最后一个单元格。
第9~13行代码循环遍历列。
第10行代码判断该列是否与源数据有交叉,如果不存在交叉,那么第11行代码隐藏列。
第14行代码拷贝源数据区域为图片,Range(firstC, lastC)为扩展的连续单元格区域。
第15行代码选中目标单元格。
第16行代码粘贴图片。
第17行代码取消隐藏列。


注意:本示例代码仅适用于多个单列非连续区域,并且每个单元格子区域起始行和结束行都相同的场景,如果非连续区域是其他形式的,大家可以修改代码使用类似的思路实现。


http://www.ppmy.cn/devtools/122291.html

相关文章

快速玩转 Mixtral 8x7B MOE大模型!阿里云机器学习 PAI 推出最佳实践

作者:熊兮、贺弘、临在 Mixtral 8x7B大模型是Mixtral AI推出的基于decoder-only架构的稀疏专家混合网络(Mixture-Of-Experts,MOE)开源大语言模型。这一模型具有46.7B的总参数量,对于每个token,路由器网络选…

【d59】【Java】【力扣】146.LRU缓存

思路 代码 class LRUCache {//初始化节点:keyvalueprenextclass Node {int key;int value;Node next;Node prev;public Node(int key, int value) {this.key key;this.value value;}}//设置链表需要的属性//最大容量int capacity0;//当前长度int size0;//头节点No…

Vue3 指令详解

一、构建指令 1. 生命周期 created:在指令被绑定到元素之前调用。这个钩子很少使用,因为指令通常在元素存在时才需要进行操作。 beforeMount:在指令绑定的元素被插入到 DOM 之前调用。 mounted:在指令绑定的元素被插入到 DOM 后调…

Watchdog Timers(WDT)

文章目录 1. 介绍2. Feature List3. 概述3.1. Safety Watchdog3.2. CPU Watchdog 4. 看门狗定时器功能5. Endinit Functions5.1 Password Access to WDTxCON05.1.1 Static Password5.1.2 Automatic Password Sequencing 5.2 Check Access to WDTxCON05.3 Modify Access to WDTx…

Vue.js组件开发详解

Vue.js组件开发详解 Vue.js 是一个用于构建用户界面的渐进式框架,其核心思想是通过数据驱动视图的变化,同时提供了一系列强大的工具来帮助开发者高效地开发复杂的单页应用。在 Vue.js 中,组件是构建复杂应用的基本单元,通过组件化…

ansible学习

ansible学习 介绍 Ansible是一个基于Python开发的自动化运维工具,它集合了众多运维工具(如puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 前置环境准备: …

【数据结构】什么是哈希表(散列表)?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌哈希表的概念 📌哈希函数的构造方法 🎏直接定址法 🎏除留余数法 🎏平方取中法 🎏折叠法 &#x…

java往word中添加水印,往excel中添加图片

通过aspose-words往word中添加水印 1、添加依赖 <dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>15.8.0</version><scope>system</scope><systemPath>${project.bas…