到目前为止,已有此代码,其中:E1 =当前文件夹的路径; H =文件名:
Set fso = CreateObject(""Scripting.FileSystemObject"")
FileSource = ""Range("E1") & Range("H" & (ActiveCell.Row)).Value"" 'original
FileDest = ""Range("E1") & Range("H" & (ActiveCell.Row)).Value"" 'new
fso.copyfile FileSource, FileDest, True
If (fso.fileexists(FileDest)) Then
fso.deletefile FileSource, True
End If
原始文件名中至少包含一个空格-类似于“ First Second Third.pdf”。我希望使用新文件名将单元格J1的内容放入新文件名中,例如“ First-CellsJ1-Second Third.pdf的内容”
10.8.18-澄清-在A6列中有一个文件名列表,在A3中有包含这些文件的文件夹路径。我试图通过将单元格J1的内容添加到旧文件名的第一个空格中来完成这些文件的重命名。并一次只执行一个文件,在活动行中执行一次。
答案 0 :(得分:1)
这些引号不是必需的;实际上,它们阻碍了工作表单元格的读取。
替换应该能够将第一个空格更改为J1单元中的任何空格。
Set fso = CreateObject("Scripting.FileSystemObject")
FileSource = Range("E1") & Range("H" & ActiveCell.Row).Value 'original
FileDest = Range("E1") & Range("H" & ActiveCell.Row).Value 'new
fso.copyfile FileSource, replace(FileDest, chr(32), range("J1").value, 1, 1), True
If (fso.fileexists(FileDest)) Then
fso.deletefile FileSource, True
End If
答案 1 :(得分:1)
您可以使用InStr
函数来查找第一个空格的位置。然后使用Left
和Right
构建新的字符串。
示例:在单元格J1
中,我放置了文本Contents of J1
。以下是我使用的每个变量的代码和输出,其中String2
是您请求的输出
Dim String1 As String 'Original String
Dim Space1 As Integer 'First Space Location
Dim String2 As String 'Final String
Dim Insert As String 'Contents of J1
String1 = ThisWorkbook.Name
Space1 = InStr(String1, " ")
Insert = ThisWorkbook.Sheets("Max").Range("J1")
String2 = Left(myString, Space1) & Insert & " " & Right(String1, Len(String1) - Space1)