是否有 copyfile 的参数会更改隐藏的 属性?
Is there an argument for copyfile that will change the hidden property?
我有一个将数据写入复制的 excel 模板的数据库。模板是隐藏的,以防止最终用户篡改它,但最终结果也是隐藏的。有没有办法在保存新文件时更改隐藏的属性?
目前,数据库正在复制模板并重命名它。
fso.CopyFile "C:\Upload\Rebate_Upload_Files\Standard Form (Template)
protected.xlsx", "C:\Upload\Rebate_Upload_Files\Rebate Contract " &
Contract_Number & " " & Date$ & ".xlsx"
之后,它传输适当的 table 并保存文件。
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml,
"export_table", "C:\Upload\Rebate_Upload_Files\Rebate Contract " &
Contract_Number & " " & Date$ & ".xlsx", False, "A12:L65000"
这个过程工作正常,除了最终文件也被隐藏了,我希望它是一个普通文件。
谢谢
不适用于 CopyFile-which 是一个 FileSystemObject 方法,但有一个用于 File 对象。复制完成后我们再更新。
为简单起见,我已将您的文件输出路径替换为字符串变量。
originalFileName = "yourStartingFile"
copyFileName = "yourCopiedFile"
set fso.CopyFile OriginalFileName, CopyFileName
--after copying, get file that was copied
--set attributes value of file to 0. 0 = Normal, 2 = Hidden
f = fso.GetFile(copyFileName)
f.attributes = 0
阅读更多内容以获取更多详细信息。
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/file-object
上面 Mike 的代码有效,但是我还需要执行几个步骤,所以我想为遇到此问题的任何人提供完整的代码。
首先,为了使用 FileSystemObject,您需要在 VBA 编辑器中启用它,方法是转至工具 -> 参考并启用 "Microsoft Scripting Runtime"。然后,使用下面的代码,您可以复制一个隐藏文件并将新文件(通过f.Attributes)设置为不隐藏:
' SourceFile is the full path name to my original file
' FileNAme is the full path name to my new file
Dim fso As Scripting.FileSystemObject
Dim f As File
Set fso = New Scripting.FileSystemObject
Call fso.CopyFile(SourceFile, FileName, False) ' Set to true to overwrite
Set f = fso.GetFile(FileName)
f.Attributes = 0
我有一个将数据写入复制的 excel 模板的数据库。模板是隐藏的,以防止最终用户篡改它,但最终结果也是隐藏的。有没有办法在保存新文件时更改隐藏的属性?
目前,数据库正在复制模板并重命名它。
fso.CopyFile "C:\Upload\Rebate_Upload_Files\Standard Form (Template)
protected.xlsx", "C:\Upload\Rebate_Upload_Files\Rebate Contract " &
Contract_Number & " " & Date$ & ".xlsx"
之后,它传输适当的 table 并保存文件。
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml,
"export_table", "C:\Upload\Rebate_Upload_Files\Rebate Contract " &
Contract_Number & " " & Date$ & ".xlsx", False, "A12:L65000"
这个过程工作正常,除了最终文件也被隐藏了,我希望它是一个普通文件。
谢谢
不适用于 CopyFile-which 是一个 FileSystemObject 方法,但有一个用于 File 对象。复制完成后我们再更新。
为简单起见,我已将您的文件输出路径替换为字符串变量。
originalFileName = "yourStartingFile"
copyFileName = "yourCopiedFile"
set fso.CopyFile OriginalFileName, CopyFileName
--after copying, get file that was copied
--set attributes value of file to 0. 0 = Normal, 2 = Hidden
f = fso.GetFile(copyFileName)
f.attributes = 0
阅读更多内容以获取更多详细信息。
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/file-object
上面 Mike 的代码有效,但是我还需要执行几个步骤,所以我想为遇到此问题的任何人提供完整的代码。
首先,为了使用 FileSystemObject,您需要在 VBA 编辑器中启用它,方法是转至工具 -> 参考并启用 "Microsoft Scripting Runtime"。然后,使用下面的代码,您可以复制一个隐藏文件并将新文件(通过f.Attributes)设置为不隐藏:
' SourceFile is the full path name to my original file
' FileNAme is the full path name to my new file
Dim fso As Scripting.FileSystemObject
Dim f As File
Set fso = New Scripting.FileSystemObject
Call fso.CopyFile(SourceFile, FileName, False) ' Set to true to overwrite
Set f = fso.GetFile(FileName)
f.Attributes = 0