Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Vba Excel生成的文本文件的另存为框_Vba_Excel_Save As - Fatal编程技术网

Vba Excel生成的文本文件的另存为框

Vba Excel生成的文本文件的另存为框,vba,excel,save-as,Vba,Excel,Save As,我正在尝试构建一个宏,它接受工作表中生成的文本并将其保存到文本文件中。运行时,系统会提示用户使用“另存为”对话框将文本保存到文件中。问题是,如果用户选择的位置不是默认的“我的文档”文件夹,它实际上不会保存。如果在关闭工作簿之前再次运行宏,则该宏将正常工作。当用户取消“另存为”框时,我必须使用“错误恢复下一步”来防止出现错误框,但如果我将其注释掉,则尝试保存到非“我的文档”位置时出现的错误为“未找到错误53文件”。有人知道这里发生了什么或者如何修复吗?有关错误的简单说明,请查看下面的“我的代码”:

我正在尝试构建一个宏,它接受工作表中生成的文本并将其保存到文本文件中。运行时,系统会提示用户使用“另存为”对话框将文本保存到文件中。问题是,如果用户选择的位置不是默认的“我的文档”文件夹,它实际上不会保存。如果在关闭工作簿之前再次运行宏,则该宏将正常工作。当用户取消“另存为”框时,我必须使用“错误恢复下一步”来防止出现错误框,但如果我将其注释掉,则尝试保存到非“我的文档”位置时出现的错误为“未找到错误53文件”。有人知道这里发生了什么或者如何修复吗?有关错误的简单说明,请查看下面的“我的代码”:

Sub saveFileAs()
Dim textFile, printText As String

textFile = "filename.txt"  'won't work without declaring something for textFile

printText = ActiveSheet.Range("A1").Value

Open textFile For Output As #1
    Print #1, printText

Close #1


On Error Resume Next

Name textFile As Application.GetSaveAsFilename(, filefilter:="TXT (*.txt),*.txt")

End Sub

这样做对我来说很有效,没有错误

Sub testing()
Dim TextFile As String, PrintText As String
Dim SaveName As Variant

TextFile = "filename.txt"
PrintText = ActiveSheet.Range("A1").Value

Open TextFile For Output As #1
  Print #1, PrintText

Close #1

SaveName = Application.GetSaveAsFilename(, filefilter:="TXT (*.txt),*.txt")
If SaveName <> False Then Name TextFile As SaveName

End Sub
子测试()
Dim TextFile作为字符串,PrintText作为字符串
Dim SaveName作为变量
TextFile=“filename.txt”
PrintText=ActiveSheet.Range(“A1”).值
打开文本文件,输出为#1
打印#1,打印文本
关闭#1
SaveName=Application.GetSaveAsFilename(,filefilter:=“TXT(*.TXT),*.TXT”)
如果SaveName为False,则将TextFile命名为SaveName
端接头

如果您选择桌面或文档作为保存目标,但试图保存到任何其他文件夹,则在“Name TextFile as SaveName”指令中会出现“file not found error”(未找到文件错误),则此操作有效。知道为什么会这样吗?