粘贴范围快照而不失真

时间:2016-02-23 09:11:38

标签: excel excel-vba vba

我正在使用此代码将png格式的地图从excel导出到位于桌面上的文件夹Mycharts。但是这个图像在到达指定文件夹时会失真。

Sub ExportMap()
    Dim day As Integer
    day = Worksheets("Control").Range("$J$1").Value
    Worksheets("Map").Range("B2:L43").CopyPicture xlScreen, xlPicture
    Application.DisplayAlerts = False
    Set oCht = Charts.Add
    If day = 1 Then
    With oCht
        .Paste
        .Export Filename:="...\Mycharts\FCT_Day_1.png",  filtername:="PNG"
        .Delete
    End With
    End If
    If day = 2 Then
    With oCht
        .Paste
        .Export Filename:="...\Mycharts\FCT_Day_2.png", filtername:="PNG"
        .Delete
    End With
    End If
    If day = 3 Then
    With oCht
        .Paste
        .Export Filename:="..\Mycharts\FCT_Day_3.png", filtername:="PNG"
        .Delete
    End With
    End If   
End Sub

1 个答案:

答案 0 :(得分:0)

使用Excel.ChartObject并调整其大小以适应源的像素大小,以避免失真和像素化。

pg_insert " insert into shema ... values ('...','...' );"

我试图收紧你的多个If ... Else ...结束Ifs Select Case statement并连接 dy (注意:与VBA不同的名字)原生Day function)到文件名中。