【问题标题】:How to Convert Excel Cell Values Into Individual PNG Files?如何将 Excel 单元格值转换为单独的 PNG 文件?
【发布时间】:2021-10-02 16:45:42
【问题描述】:

有人刚刚问了这个问题,但由于缺乏努力而被关闭。我花了足够的时间研究和构建这个,我觉得应该发布一个答案(见下文)。这个关于PNG文件的问题没有直接的答案。

布局示例

每个单词的期望输出。

【问题讨论】:

    标签: excel vba png


    【解决方案1】:

    这将:

    1. 创建图表
    2. 向图表添加图像
    3. 循环遍历指定范围内的每个单元格,这些单元格也在使用范围内
    4. 对于非空单元格,它将更新图表中的图像。
    5. 将图表另存为 PNG 文件。

    我从SpreadSheetGuru 以及传奇的Tim Williams 那里得到了一些帮助。

    您需要更新 Const 以创建您的范围。

    Sub buildPNG()
        Const thePath As String = "C:\Users\SRide\OneDrive\Documents\Junk\" 'or wherever
        Const zWidth As Long = 600
        Const zLength As Long = 400
        Const theFontSize As Long = 96
        Const theRange As String = "A:A"
        
    Dim WS As Worksheet, aCell As Range
        Set WS = ActiveSheet 'or whatever
        
    
    Dim myChart As ChartObject
            Set myChart = WS.ChartObjects.Add(Left:=50, Width:=zWidth, Top:=50, Height:=zLength)
            
    Dim myShape As Shape
        myChart.Activate
        Set myShape = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 1, 1, zWidth, zLength)
        
        With myChart.ShapeRange
          .Fill.Visible = msoFalse
          .Line.Visible = msoFalse
        End With
    
        With myShape.TextFrame
           
            .HorizontalAlignment = xlHAlignCenter
            .VerticalAlignment = xlVAlignCenter
            .Characters.Font.Size = theFontSize
    
            For Each aCell In Intersect(WS.UsedRange, WS.Range(theRange)).Cells
                If Not IsEmpty(aCell) Then
                    .Characters.Text = aCell.Value2
                    myChart.Chart.Export (thePath & aCell.Row & ".PNG")
                End If
            Next aCell
        End With
      
    End Sub
    

    【讨论】:

    • 如果有 1000 个单元格,那么您可以创建一个图表,在图表内部放置一个文本框,然后在每次导出之前更改文本框的文本...
    • @TimWilliams 已更新。感谢您指出应该更明显的内容。
    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 2013-06-14
    • 1970-01-01
    • 2020-08-25
    • 2022-01-23
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多