我正试图从文件夹中取出图像以检查其宽度。要做到这一点,我使用以下代码和平:
Dim pic As IPictureDisp
Dim var As Variant
var = "C:\Myfolder\Animage" & animationNum + 1 & ".png"
pic = LoadPicture(var)
它给了我“无效图片”错误。我还尝试使用以下行:
width = LoadPicture("C:\Myfolder\Animage" & animationNum + 1 & ".png").width
但它也给了我同样的错误。我该如何加载图片?
修改
我尝试使用jpg图像并且它可以工作......这是否与png文件有关?
答案 0 :(得分:2)
Visual Basic识别的图形格式包括位图(.bmp) 文件,图标(.ico)文件,光标(.cur)文件,游程编码 (.rle)文件,元文件(.wmf)文件,增强型图元文件(.emf),GIF (.gif)文件和JPEG(.jpg)文件。
.png 不受支持。
答案 1 :(得分:0)
在更高版本的Office中操作时,LoadPicture命令似乎不喜欢文件名的长度大于35个字符。我可以在Windows 7 Office 2010中将图片加载到用户窗体中,它似乎可以处理任何长度的文件名,但是一旦移至Windows 10 / Office 2013以后,如果长度超过35个字符,Err.Description就会简单地说:路径/访问错误”。
将文件名限制为35个字符,就可以了。
答案 2 :(得分:-1)
我正在寻找这个确切的问题并在另一个网站上找到了解决方案,所以我想我会在这里分享。
我没有提出这个代码,它来自于Expert Exchange:http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_26980514.html
如果您导入.bas
文件,则可以使用LoadPictureGDI()
代替LoadPicture()
,在将图片加载到用户表单或工作表之前转换图片。