尝试使用文件对话框保存表导出

时间:2013-07-01 11:53:59

标签: vba ms-access ms-access-2007 access-vba

Private Sub Command42_Click()
    Dim f As Object
    Dim strFile As String
    Dim strFolder As String
    Dim varItem As Variant
    Dim P As String
    Set f = Application.FileDialog(msoFileDialogSaveAs)
        f.AllowMultiSelect = False
        f.InitialFileName = "H:\Chuck M\UCPP\"
        If f.Show Then
        For Each varItem In f.SelectedItems
                strFile = Dir(varItem)
                strFolder = Left(varItem, Len(varItem) - Len(strFile))
                P = strFolder & strFile
                DoCmd.TransferText acExportDelim, "UCCP Export Specification", "MOM_Table Export", P
            Next
        End If
        Set f = Nothing
End Sub

我目前有这个但是我收到错误"方法' FileDialog'对象' _Application'失败。

我已经做了一些谷歌搜索,但无法找到帮助我的东西。

我只是想让这个盒子允许我将逗号分隔的表格导出保存到我​​想要的位置,并允许我们为其命名,这样我们就不会让每个日常出口混淆。

非常感谢任何有关此事的帮助。

1 个答案:

答案 0 :(得分:2)

如果出现以下情况,您可能会收到错误:

  • 您的模块顶部没有Option Explicit
  • 您的VBA项目没有Office对象库和
  • 的引用
  • 您尝试使用msoFileDialogSaveAs常量名称。

要解决这个问题,要么......

(a)验证您的VBA项目是否具有...

的有效参考
  

Microsoft Office nn.n对象库

...其中nn.n对应于您已安装的Office版本(例如,对于Office 2010,它是14.0。)

(b)如果失败,您可以使用

Dim f As Object
Const msoFileDialogSaveAs = 2
Set f = Application.FileDialog(msoFileDialogSaveAs)

提示:始终对您创建的每个模块使用Option Explicit。这会让你很头疼。要使其成为默认值,请在VBA编辑器中选择Tools > Options,然后选择“需要变量声明”。但是,这不会将Option Explicit添加到任何现有模块中;你必须自己做。