【问题标题】:Is there an argument for copyfile that will change the hidden property?copyfile 的参数是否会更改隐藏属性?
【发布时间】:2019-10-04 02:01:15
【问题描述】:

我有一个将数据写入复制的 Excel 模板的数据库。该模板被隐藏以防止最终用户篡改它,但最终结果也被隐藏。保存新文件时有没有办法改变隐藏属性?

目前,数据库复制模板并重命名。

fso.CopyFile "C:\Upload\Rebate_Upload_Files\Standard Form (Template) 
protected.xlsx", "C:\Upload\Rebate_Upload_Files\Rebate Contract " & 
Contract_Number & " " & Date$ & ".xlsx"

之后,它会传输相应的表并保存文件。

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, 
"export_table", "C:\Upload\Rebate_Upload_Files\Rebate Contract " & 
Contract_Number & " " & Date$ & ".xlsx", False, "A12:L65000"

这个过程工作正常,除了最终文件也被隐藏了,我希望它是一个普通文件。

谢谢

【问题讨论】:

    标签: vba ms-access hidden-files file-properties


    【解决方案1】:

    不适用于 CopyFile - 它是一种 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

    https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/attributes-property

    【讨论】:

    • 成功了!我必须将其更改为“Set F = fso.GetFile(copyFileName)”,否则会引发 Object Required 错误。
    【解决方案2】:

    上面 Mike 的代码可以运行,但是我需要执行更多步骤,所以我想为遇到此问题的任何人提供完整的代码。

    首先,为了使用 FileSystemObject,您需要在 VBA 编辑器中启用它,方法是转到 Tools->References 并启用“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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      相关资源
      最近更新 更多