Excel VBA 将图片保存到本地文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel VBA 将图片保存到本地文件夹相关的知识,希望对你有一定的参考价值。

我想实现单点击“上传”按钮时,把文本框中所示路径下的图片,保存在指定的文件夹内。
保存时文件名改成下面窗口中的姓名,比如“杜小小.jpg ”。
我试过用 FileCopy,运行错误("70"):拒绝的权限
zipall
你好! 貌似用嵌入dos命令的方法可以实现,我尝试了几次还是不行,请你帮忙查看一下我的程序有什么问题 谢谢!
Private Sub CommandButton1_Click()
Dim Potopath as string
Dim stra As String
Potopath = ThisWorkbook.Path & "\" & EIF.ENO.text & ".jpg" 'EIF.ENO.text & ".jpg我想用这个命名保存后的图片
stra = "cmd /c copy" & TextBox1.Text & " " & Potopath
Shell stra, 1
End Sub
*********************************************************************************
yangdongzhen11
谢谢你, 写了那么多。 我想你还没看清我要做什么。 我不是想把Excel文件另存一份……
*********************************************************************************
zipall
我又试了几次,还是不行
yangdongzhen11

参考技术A 恩,我考虑错误。不过不会,期待大师们解决,学习了。
假如你要保存在本文件夹里的,photos文件夹下。
Private Sub CommandButton1_Click()
Dim name as string
Dim Potopath as string
Potopath=ThisWorkbook.Path
name = EIF.ENO.text
On Error GoTo line
Application.ActiveWorkbook.SaveAs filename:=potopath &photos& name, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
MsgBox "上传成功"
Exit Sub
line:
MsgBox "上传失败"
Exit Sub
End If
End Sub

试下可不可以。不行的话,你查下Application.ActiveWorkbook.SaveAs filename的用法,用F1查,应该对你有帮助。
参考技术B Private Sub CommandButton1_Click()
Dim fs As FileSystemObject
Dim f As File
Dim Potopath As String

Potopath = ThisWorkbook.Path & "\" & EIF.ENO.Text & ".jpg" 'EIF.ENO.text & ".jpg我想用这个命名保存后的图片

Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(TextBox1.Text)
f.Copy Potopath, True

End Sub本回答被提问者采纳
参考技术C Private Sub CommandButton1_Click()
Set fs = CreateObject("Scripting.FileSystemObject")
Set Potopath = fs.GetFile(换成保存前的路径 + 图片名)
Potopath.Copy 换成保存后的路径 + 图片名
End Sub

Private Sub CommandButton1_Click()
Set fs = CreateObject("Scripting.FileSystemObject")
Set Potopath = fs.GetFile(文本框.Text)
Potopath.Copy ThisWorkbook.Path & "\" & EIF.ENO.Text & ".jpg"
End Sub
参考技术D 象这样

Shell ("cmd.exe /C copy " & textbox1.text & " " & userform1.textbox2.text ), vbHide

对补充问题的回复
我觉得是你的copy后面少了个空格的缘故。

VBA 将 Excel 文件从 Access 保存为 .xls

【中文标题】VBA 将 Excel 文件从 Access 保存为 .xls【英文标题】:VBA save Excel file as .xls from Access 【发布时间】:2016-02-27 22:20:53 【问题描述】:

您好,我必须从 Excel 文件导入 Access DB,不能重复。唯一可以做到这一点的方法是创建可以导入 Excel 数据的表,然后通过构建查询将其附加到目标表。问题是这个 Excel 文件必须是 .xls 格式,没有其他格式对我有用(不知道为什么)。我怎样才能从 Access 中做到这一点 - 不需要打开 Excel 工作簿,只需更改它的扩展文件名?这是我尝试过的(我收到错误:“对象不支持此属性或方法”)

Dim XFile As Excel.Application


Set XFile = CreateObject("Excel.Application")
XFile.Workbooks.Open "C:\Users\Mike\Desktop\Copy.xlsx", True

XcelFile.SaveAs Filename:="C:\Users\Mike\Desktop\Copy.xlsx", FileFormat:=56
XFile.Workbooks.Close

End Sub

如您所见,我需要从 .xlsx 保存,这是 Excel 2013 的默认格式。

非常感谢任何帮助!

【问题讨论】:

您的“另存为”文件是您刚刚打开的文件。您至少应该更改目的地名称,否则您肯定会遇到冲突。 见this answer。 在“SaveAs”语句中将扩展名从“.xlsx”更改为“.xls” @Porcupine911,我看不出这个答案对我的情况有什么帮助。 @user3598756,我试过了,但仍然收到同样的错误。 【参考方案1】:

感谢@Porcupine911,即使没有打开工作簿,它也能工作:)

Dim XcelFile As Excel.Application
Dim wb As Excel.Workbook

Set XcelFile = New Excel.Application

Set wb = XcelFile.Workbooks.Open("Filepath here")

wb.SaveAs Filename:="Filename here, with different destination and desirable extension", FileFormat:=56
wb.Close
Set XcelFile = Nothing

End Sub

【讨论】:

以上是关于Excel VBA 将图片保存到本地文件夹的主要内容,如果未能解决你的问题,请参考以下文章

在 Excel 中使用 VBA 时将图片另存为图片而不是链接

Excel表格中的图片怎样保存到电脑中

怎么把Excel里的图片保存到桌面上?

如何将Bitmap保存为本地图片文件?

python-尝试将Excel文件保存为图片并加上水印

如何将Bitmap保存为本地图片文件?