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

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 Range
    With 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 With
        For i = firstC.Column To lastC.Column
            If Intersect(sRng, .Columns(i)) Is Nothing Then
                .Columns(i).Hidden = True
            End If
        Next
        Range(firstC, lastC).CopyPicture xlPrinter, xlPicture
        .Range("A18").Select
        .Paste
        .Columns.Hidden = False
    End With
End Sub

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/887066.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式

背景 现在对3个节点的sentinel进行配置。sentinel的配置文件在redis的安装目录中已经存在,只需要复制到指定的位置即可。 sentinel是独立进程,有对应的脚本来执行。 基于之前的redis 一主二从的架构,我们继续启动3个sentinel进程。 哨兵模式的…

MAC备忘录空白解决方案

打开icloud->备忘录 取消勾选同步此MAC后再次勾选,然后点击完成即可。

【SpringCloud】服务注册/服务发现-Eureka

服务注册/服务发现-Eureka 1. 背景1.1 问题描述1.2 解决思路1.3 什么是注册中⼼1.4 CAP理论1.5 常⻅的注册中⼼ 2. Eureka 介绍3. 搭建Eureka Server 1. 背景 1.1 问题描述 上个章节的例⼦中可以看到, 远程调⽤时, 我们的URL是写死的 String url "http://127.0.0.1:90…

Ubuntu24.04远程开机

近来在几台机器上鼓捣linux桌面,顺便研究一下远程唤醒主机。 本篇介绍Ubuntu系统的远程唤醒,Windows系统的唤醒可搜索相关资料。 依赖 有远程唤醒功能的路由器(当前一般都带这个功能)有线连接主机(无线连接有兴趣朋友…

推荐:五种限流(Rate Limiting)算法

推荐:五种限流(Rate Limiting)算法,发现一个不错的讲这个算法的UP,地址是:05~五种限流(Rate Limiting)算法_哔哩哔哩_bilibili https://www.bilibili.com/video/BV11k4SerE74/ 全部用动画展示,十分生动,比如漏桶算法&…

芝法酱学习笔记(0.5)——使用jenkins做自动打包

前言 上节讲了SpringBoot上的打包。但这些过程都是手动的,在实际的开发测试时,自动化的打包部署,可以大大提升团队开发的效率 一、去官网下载 1.1 官网安装命令 对于如何安装的问题,我向来推荐官网 wget -O /usr/share/keyri…

针对考研的C语言学习(定制化快速掌握重点4)

typedef的使用 简化变量类型 逻辑结构 集合结构:无关系 线性结构:一对一 树形结构:一对多 图形结构:多对多 存储结构 顺序存储和链式存储(考代码) 顺序存储优点:1.可以实现随机存取。2.…

C语言 | Leetcode C语言题解之题451题根据字符出现频率排序

题目: 题解: #define HASH_FIND_CHAR(head, findint, out) HASH_FIND(hh, head, findint, sizeof(char), out) #define HASH_ADD_CHAR(head, intfield, add) HASH_ADD(hh, head, intfield, sizeof(char), add)struct HashTable {char key;int val;UT_ha…

今日凌晨,ChatGPT重磅更新!—— 我心目中的终极AGI界面

今日凌晨,ChatGPT重磅更新!—— 我心目中的终极AGI界面 我心目中的终极 AGI 界面是一张空白画布(canvas)。 今日凌晨,OpenAI 发布 canvas,一个与 ChatGPT 合作写作和编程的新界面! canvas&…

C语言复习概要(二)

本文目录 C语言中的数组与函数详解1. 引言2. 数组2.1. 什么是数组?语法:示例: 2.2. 数组的初始化示例 1:在声明时初始化示例 2:部分初始化示例 3:运行时赋值 2.3. 数组的访问与修改示例: 2.4. 多…

Docker启动 Redis提示:Can‘t initialize Background Jobg

问题说明: 在使用docker启动redis失败,但是查看容器日志,除了提示 Fatal:Cant initialize Background Jobg,没有其他错误信息。经过长时间查找资料及试错,现记录下可能的产生原因及解决方案,以便以后参考。 产生原因&…

【从零开始实现stm32无刷电机FOC】【实践】【7.1/7 硬件设计】

目录 stm32电路磁编码器电路电机驱动电路电流采样电路电机选择本文示例硬件说明 为了承载和验证本文的FOC代码工程,本节设计了一个简易的三相无刷电机 硬件套件,主控采用非常常用的stm32f103c8t6单片机,电机编码器采用MT6701,电机…

mysql怎么修改一个字段中的所有部分数据

UPDATE videos SET VideoCode replace(VideoCode,flv,mp4); update 表名 set 字段名 replace(字段名,‘修改前’,‘修改后’);

【工欲善其事】巧用 Sublime Text 生成带格式的 HTML 片段

文章目录 【工欲善其事】巧用 Sublime Text 生成带格式的 HTML 片段1 问题由来2 操作流程步骤1:打开代码片段定制页步骤2:在新标签页输入定制 XML步骤3:保存定义内容步骤4:功能测试 3 拓展 【工欲善其事】巧用 Sublime Text 生成带…

Elasticsearch使用Easy-Es + RestHighLevelClient实现深度分页跳页

注意!!!博主只在测试环境试了一下,没有发到生产环境跑。因为代码还没写完客户说不用弄了( •̩̩̩̩_•̩̩̩̩ ) 也好,少个功能少点BUG 使用from size的时候发现存在max_result_window10000的限制&…

如何使用工具删除 iPhone 上的图片背景

在 iPhone 上删除背景图像变得简单易行。感谢最近 iOS 更新中引入的新功能。如今,iOS 用户现在可以毫不费力地删除背景,而无需复杂的应用程序。在这篇文章中,您将学习如何使用各种方法去除 iPhone 上的背景。这可确保您可以选择最适合您偏好的…

自动驾驶核心技术:感知融合、规划决策、控制执行

1、前言 简单来说,实现自动驾驶需要解决三个核心问题:“我在哪?我要去哪?我该如何去?”能完整解决这三个问题就是真正的自动驾驶。 目前,自动驾驶汽车关键技术主要包括环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网V2X以…

Linux下的IO模型

阻塞与非阻塞IO(Input/Output) 阻塞与非阻塞IO(Input/Output)是计算机操作系统中两种不同的文件或网络通信方式。它们的主要区别在于程序在等待IO操作完成时的行为。 阻塞IO(Blocking IO) 在阻塞IO模式下…

无IDEA不Java:快速掌握Java集成开发环境

IntelliJ IDEA是一种强大的Java集成开发环境,是Java开发人员的首选工具之一。本文将介绍IDEA的基本使用方法和常用功能,以帮助初学者快速上手。 安装和配置 首先,需要下载并安装IntelliJ IDEA。在安装完成后,需要配置JDK&#xff…

pygame--超级马里奥(万字详细版)

超级马里奥点我下载https://github.com/marblexu/PythonSuperMario 1.游戏介绍 小时候的经典游戏,代码参考了github上的项目Mario-Level-1,使用pygame来实现,从中学习到了横版过关游戏实现中的一些处理方法。原项目实现了超级玛丽的第一个小…