Excel批量插图片自适应大小

一、Excel批量插入图片自适应大小

在使用Excel表格的过程中,我们经常需要在表格中插入图片来辅助展示数据,但常常会遇到图片过大或过小,需要手动调整大小的情况,这对于大量图片插入的情况下需要花费大量的时间和精力。下面我们介绍一种自适应大小的方式来批量插入图片。


Sub InsertPic()
    Dim picName As String '图片名
    Dim picPath As String '图片路径
    Dim picWidth As Single '图片实际宽度
    Dim picHeight As Single '图片实际高度
    Dim picRatio As Single '图片宽高比
    
    '打开“打开文件”对话框,选择要插入的图片文件
    picPath = Application.GetOpenFilename("JPG Files *.jpg,*.png,*.bmp", , "Select Picture")
    
    '如果选择了图片文件
    If picPath  "False" Then
        '提取图片名
        picName = Mid(picPath, InStrRev(picPath, "\") + 1)
        '插入图片
        With ActiveSheet.Pictures.Insert(picPath)
            '获取图片的实际宽度和高度
            picWidth = .Width
            picHeight = .Height
            '计算图片的宽高比
            picRatio = picWidth / picHeight
            '自适应表格宽度
            If picWidth > ActiveCell.Width Then
                .Width = ActiveCell.Width - 10
                .Height = (.Width / picRatio)
            End If
            '自适应表格高度
            If picHeight > ActiveCell.RowHeight Then
                .Height = ActiveCell.RowHeight - 5
                .Width = (.Height * picRatio)
            End If
            '移动图片到单元格中心
            .Left = ActiveCell.Left + (ActiveCell.Width - .Width) / 2
            .Top = ActiveCell.Top + (ActiveCell.RowHeight - .Height) / 2
            '重命名图片
            .Name = picName
        End With
    End If
End Sub

上述代码中通过打开“打开文件”对话框,选择要插入的图片文件,并通过计算图片的实际宽度和高度,计算出图片的宽高比,从而使图片能够自适应表格大小。

二、Excel批量插图片自适应大小宏

如果需要在多个单元格中批量插入图片,并且需要保持图片自适应表格大小,那么我们可以通过编写宏来实现。下面是一个简单的批量插入图片自适应大小的示例宏:


Sub InsertPicsAuto()
    Dim picName As String
    Dim picPath As String
    Dim picWidth As Single
    Dim picHeight As Single
    Dim picRatio As Single
    Dim cell As Range
    
    '打开“打开文件”对话框,选择要插入的图片文件
    picPath = Application.GetOpenFilename("JPG Files *.jpg,*.png,*.bmp", , "Select Pictures")
    
    '如果选择了图片文件
    If picPath  "False" Then
        For Each cell In Selection
            '提取图片名
            picName = Mid(picPath, InStrRev(picPath, "\") + 1)
            '插入图片
            With ActiveSheet.Pictures.Insert(picPath)
                '获取图片的实际宽度和高度
                picWidth = .Width
                picHeight = .Height
                '计算图片的宽高比
                picRatio = picWidth / picHeight
                '自适应表格宽度
                If picWidth > cell.Width Then
                    .Width = cell.Width - 10
                    .Height = (.Width / picRatio)
                End If
                '自适应表格高度
                If picHeight > cell.RowHeight Then
                    .Height = cell.RowHeight - 5
                    .Width = (.Height * picRatio)
                End If
                '移动图片到单元格中心
                .Left = cell.Left + (cell.Width - .Width) / 2
                .Top = cell.Top + (cell.RowHeight - .Height) / 2
                '重命名图片
                .Name = picName
            End With
            '向右移动一列
            Set cell = cell.Offset(0, 1)
        Next cell
    End If
End Sub

上述代码通过打开“打开文件”对话框,选择要插入的多个图片文件,并通过循环迭代选择区域中的单元格,实现批量插入图片并自适应表格大小。

三、Excel批量插图片自适应大小WPS

如果您使用WPS表格而非Excel表格,您也可以使用类似的方法实现自适应大小的图片插入。以下是一个示例宏:


Sub InsertPicWPS()
    Dim picName As String
    Dim picPath As String
    Dim picWidth As Single
    Dim picHeight As Single
    Dim picRatio As Single
    
    '打开“打开文件”对话框,选择要插入的图片文件
    picPath = Application.GetOpenFilename("JPG Files *.jpg,*.png,*.bmp", , "Select Picture")
    
    '如果选择了图片文件
    If picPath  "False" Then
        '提取图片名
        picName = Mid(picPath, InStrRev(picPath, "\") + 1)
        '插入图片
        With ActiveSheet.Pictures.Insert(picPath)
            '获取图片的实际宽度和高度
            picWidth = .Width
            picHeight = .Height
            '计算图片的宽高比
            picRatio = picWidth / picHeight
            '自适应表格宽度
            If picWidth > ActiveCell.Width Then
                .Width = ActiveCell.Width - 10
                .Height = (.Width / picRatio)
            End If
            '自适应表格高度
            If picHeight > ActiveCell.RowHeight Then
                .Height = ActiveCell.RowHeight - 5
                .Width = (.Height * picRatio)
            End If
            '移动图片到单元格中心
            .Left = ActiveCell.Left + (ActiveCell.Width - .Width) / 2
            .Top = ActiveCell.Top + (ActiveCell.RowHeight - .Height) / 2
            '重命名图片
            .Name = picName
        End With
    End If
End Sub

与Excel表格的示例相似,上述代码中通过打开“打开文件”对话框,选择要插入的图片文件,并通过计算图片的实际宽度和高度,计算出图片的宽高比,从而使图片能够自适应表格大小。

四、Excel表格内图片统一大小

除了在插入图片时自适应表格大小,我们也可以通过其他方式来实现表格内图片的统一大小。以下是一种比较简单的方式:

  1. 选中要统一图片大小的一列单元格
  2. 点击“开始”选项卡中的“格式刷”按钮
  3. 在“格式刷”模式下,选中已经设置好大小的图片,并取消选中单元格
  4. 点击“开始”选项卡中的“粘贴”按钮
  5. 在“粘贴”模式下,选择要统一大小的图片,并完成粘贴操作
  6. 选中刚刚插入的图片,并调整其大小和位置以适应单元格
  7. 重复以上步骤,直到所有图片大小和位置都适应单元格

这种方式虽然比较繁琐,但对于插入数量不大的图片,仍然是一种可行的方式。

原创文章,作者:CREID,如若转载,请注明出处:https://www.506064.com/n/334951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
CREIDCREID
上一篇 2025-02-05 13:05
下一篇 2025-02-05 13:05

相关推荐

  • 用Python绘制酷炫图片

    在本篇文章中,我们将展示如何使用Python绘制酷炫的图片。 一、安装Python绘图库 在使用Python绘制图片之前,我们需要先安装Python绘图库。Python有很多绘图库…

    编程 2025-04-29
  • 使用axios获取返回图片

    使用axios获取返回图片是Web开发中很常见的需求。本文将介绍如何使用axios获取返回图片,并从多个方面进行详细阐述。 一、安装axios 使用axios获取返回图片前,首先需…

    编程 2025-04-29
  • Python 图片转表格

    本文将详细介绍如何使用Python将图片转为表格。大家平时在处理一些资料的时候难免会遇到图片转表格的需求。比如从PDF文档中提取表格等场景。当然,这个功能也可以通过手动复制、粘贴,…

    编程 2025-04-29
  • Python缓存图片的处理方式

    本文将从多个方面详细阐述Python缓存图片的处理方式,包括缓存原理、缓存框架、缓存策略、缓存更新和缓存清除等方面。 一、缓存原理 缓存是一种提高应用程序性能的技术,在网络应用中流…

    编程 2025-04-29
  • Python如何抓取图片数据

    Python是一门强大的编程语言,能够轻松地进行各种数据抓取与处理。抓取图片数据是一个非常常见的需求。在这篇文章中,我们将从多个方面介绍Python如何抓取图片数据。 一、使用ur…

    编程 2025-04-29
  • Python利用Image加图片的方法

    在Python中,利用Image库可以快速处理图片,并加入需要的图片,本文将从多个方面详细阐述这个操作。 一、Image库的安装和基础操作 首先,我们需要在Python中安装Ima…

    编程 2025-04-28
  • Avue中如何按照后端返回的链接显示图片

    Avue是一款基于Vue.js、Element-ui等技术栈的可视化开发框架,能够轻松搭建前端页面。在开发中,我们使用到的图片通常都是存储在后端服务器上的,那么如何使用Avue来展…

    编程 2025-04-28
  • Akka 设置邮箱大小的方法和注意事项

    为了保障系统的稳定性和可靠性,Akka 允许用户设置邮箱大小。本文将介绍如何在 Akka 中设置邮箱大小,并且提供一些注意事项,以帮助读者解决可能遇到的问题。 一、设置邮箱大小 A…

    编程 2025-04-28
  • 使用CKSlide实现图片轮播

    CKSlide是一个基于jQuery的插件,可以方便地为网页添加幻灯片和图片轮播效果。使用CKSlide可以让网站更加生动、活泼,给用户带来更好的体验。 一、CKSlide基本用法…

    编程 2025-04-28
  • Java批量执行SQL时Communications Link Failure Socket is Closed问题解决办法

    对于Java开发人员来说,批量执行SQL是一个经常会遇到的问题。但是,有时候我们会遇到“Communications link failure socket is closed”这…

    编程 2025-04-28

发表回复

登录后才能评论