重命名图片,如果它已经存在

时间:2018-03-15 15:36:07

标签: vba

我有一个UserForm将图片保存到文件夹。请参阅下面的代码。

Dim strpath As String
Private Sub CommandButton1_Click()
Dim cou As Integer
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
cou = Application.FileDialog(msoFileDialogOpen).Show
If cou <> 0 Then
    strpath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
    Image1.Picture = LoadPicture(strpath)
    Image1.PictureSizeMode = 1
End If
End Sub
Private Sub CommandButton2_Click()
Dim nam As String
nam = TextBox1.Text
FileCopy strpath, "C:\Desktop\folder\" & nam & ".jpeg"
Me.TextBox1.Text = ""
Set Image1.Picture = Nothing

End Sub

如何编写不会覆盖相同命名文件的文件,只需将其保存为另一个名称,如:Picture1,Picture1-Copy。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

可能是最简单的方法:

While Len(Dir("C:\Desktop\folder\" & nam & ".jpeg")) > 0
    nam = nam & 1
Wend
FileCopy strpath, "C:\Desktop\folder\" & nam & ".jpeg"

我的想法是,如果它在sample.jpeg中找到类似C:\Desktop\folder\的文件,则其长度将大于0.因此,它会查找文件sample1.jpeg,{{1一旦找不到这样的文件,就会使用未找到的名称来保存它。