Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 停止用目标文件名更改源文件名_Excel_Vba_Robots.txt_Save As - Fatal编程技术网

Excel 停止用目标文件名更改源文件名

Excel 停止用目标文件名更改源文件名,excel,vba,robots.txt,save-as,Excel,Vba,Robots.txt,Save As,我发现这个非常酷的VBA,它做它说的, 但正如我所观察到的,它不断地用目标文件名更改源文件名 任何人都可以提供另一行代码来停止修改源文件吗 这个宏实际上做的是, 它使用用户提供的名称在目标目录中创建一个文本文件 但同时它也在重命名我的实际文件,这是出乎意料的 谢谢你在这里所做的一切,祝你周末愉快。干杯 子CreateTextFile() 将myFolder设置为字符串 ”乔说。 '将范围另存为文本文件。 激活工作表 '要求用户选择文本文件的范围。 设置myRange=Application.I

我发现这个非常酷的VBA,它做它说的, 但正如我所观察到的,它不断地用目标文件名更改源文件名

任何人都可以提供另一行代码来停止修改源文件吗 这个宏实际上做的是, 它使用用户提供的名称在目标目录中创建一个文本文件

但同时它也在重命名我的实际文件,这是出乎意料的

谢谢你在这里所做的一切,祝你周末愉快。干杯

子CreateTextFile()
将myFolder设置为字符串
”乔说。
'将范围另存为文本文件。
激活工作表
'要求用户选择文本文件的范围。
设置myRange=Application.InputBox(提示:=“请选择一个范围!”_
标题:=“文本文件范围!”,类型:=8)
我的范围。选择
选择,复制
'这将临时添加一个名为“Test”的工作表
Sheets.Add.Name=“测试”
表格(“测试”)。选择
活动表。粘贴
'要求用户提供保存文本文件的文件夹。
myFolder=Application.GetSaveAsFilename(文件过滤器:=“文本文件(*.txt),*.txt”)
'将所选数据另存为用户所选文件夹中的文本文件。
'ActiveWorkbook.SaveAs文件名:=myFolder,文件格式:=xlText,CreateBackup:=False
ActiveWorkbook.SaveAs文件名:=myFolder,文件格式:=xlTextPrinter,CreateBackup:=False
'删除临时工作表。
Application.ScreenUpdating=False
Application.DisplayAlerts=False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts=True
Application.ScreenUpdating=True
'指示保存操作。
MsgBox“文本文件:&myFolder&”已保存
“到床单的顶部。
范围(“A1”)。选择

End Sub
ActiveWorkbook.SaveAs文件名:=myFolder,文件格式:=xlTextPrinter,CreateBackup:=False 这部分是有问题的。 如果要保留原始名称,应将数据复制到新工作簿,保存后可关闭该工作簿

试着这样做:

Sub CreateTextFile()
Dim myFolder As String
'By Joe Was.
'Save Range as Text File.
'Edited by Lonolian
Dim AWB As Workbook <-- Added
ActiveSheet.Activate
'Ask user to select range for text file.
Set myRange = Application.InputBox(prompt:="Please select a range!", _
Title:="Text File Range!", Type:=8)
myRange.Select
Selection.Copy
'This temporarily adds a sheet named "Test."
Sheets.Add.Name = "Test"
Sheets("Test").Select
ActiveSheet.Paste
Application.CutCopyMode = False '<---------Edited
Sheets("Test").Move             '<---------Edited
Set AWB = ActiveWorkbook
'Ask user for folder to save text file to.
myFolder = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt")
'Save selected data as text file in users selected folder.
'ActiveWorkbook.SaveAs Filename:=myFolder, FileFormat:=xlText, CreateBackup:=False
AWB.SaveAs Filename:=myFolder, FileFormat:=xlTextPrinter, CreateBackup:=False
'Remove temporary sheet.
AWB.Close True <--- Editied
'Indicate save action.
MsgBox "Text File: " & myFolder & "Saved!"
'Go to top of sheet.
Range("A1").Select
End Sub
子CreateTextFile()
将myFolder设置为字符串
”乔说。
'将范围另存为文本文件。
由洛诺利安编辑

Dim AWB As工作簿嗨,Lonolian,谢谢你的解决方案,你让我的一天变得轻松了。。这很有帮助,因为像你这样的人会指导那些需要知识、伟大工作的人