Excel VBA在图表中粘贴jpeg图片
我正在使用excel 2013。这是我尝试过的代码,它不起作用。关于如何编写VBA的任何建议,可以使用jpeg文件填充图表,也可以使用我已经在名为“picture 6”的表格中作为形状的图片,谢谢Excel VBA在图表中粘贴jpeg图片,vba,excel,Vba,Excel,我正在使用excel 2013。这是我尝试过的代码,它不起作用。关于如何编写VBA的任何建议,可以使用jpeg文件填充图表,也可以使用我已经在名为“picture 6”的表格中作为形状的图片,谢谢 Sub PastePic() ActiveSheet.ChartObjects("MainChart").Activate ActiveChart.ChartArea.Format.Fill.UserPicture("S:\CAT\Everyone\Analyse\Kundeplattform\sq
Sub PastePic()
ActiveSheet.ChartObjects("MainChart").Activate
ActiveChart.ChartArea.Format.Fill.UserPicture("S:\CAT\Everyone\Analyse\Kundeplattform\square.jpeg")
End Sub
如果是一个网络路径正在产生问题,那么你可以考虑基于山姆的答案的选项1。否则,如果您想使用E形状“图片6”,请使用选项2
选项1) 按照Sam在回答中的建议,将其复制到本地驱动器。您可以手动复制它,也可以通过代码进行复制 此代码将从网络路径将映像复制到用户的临时目录,然后将其用作映像 未经测试Const sPath As String = "S:\blah\blah\Sample.jpg"
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Const MAX_PATH As Long = 260
Sub Sample()
Dim TempFile As String
TempFile = TempPath & "Sample.Jpg"
FileCopy sPath, TempFile
DoEvents
ActiveSheet.ChartObjects("MainChart").Activate
ActiveChart.ChartArea.Format.Fill.UserPicture (TempFile)
Kill TempFile
End Sub
Function TempPath() As String
TempPath = String$(MAX_PATH, Chr$(0))
GetTempPath MAX_PATH, TempPath
TempPath = Replace(TempPath, Chr$(0), "")
End Function
选项2)
使用Excel文件中已有的形状图片6
您可以使用我展示的示例,该示例使用了
.CopyPicture
和Stephen Bullen的PastePicture函数您的代码看起来不错,适合我
看起来您正在从网络中检索图片。尝试将图片移动到本地计算机上的
C:
驱动器(即C:\square.jpeg
),然后重试宏,这可能是网络问题。我可以通过使用FQPN作为文件路径来解决类似问题。因此,我没有使用filePath=“s:\path\file.png”
而是使用filePath=“\\server\share\path\file.png”
您的代码看起来很好。看起来您正在从网络中检索图片。尝试将图片移动到本地机器上的C:
驱动器(即C:\square.jpeg
)上,看看是否有效。+1我也认为这可能是原因。