1
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

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

我做了一些谷歌搜索,但找不到对我有帮助的东西。

我只是希望这个框允许我将逗号分隔的表格导出保存到我​​想要的位置并允许我们命名它,这样我们就不会混淆每天的导出。

在这件事上的任何帮助将不胜感激。

4

1 回答 1

2

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

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

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

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

Microsoft Office nn.n 对象库

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

(b)做不到这一点,你可以使用

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

提示:始终用于Option Explicit您创建的每个模块。它将为您省去很多麻烦。要将其设为默认值,Tools > Options请在 VBA 编辑器中选择并选择“需要变量声明”。但是,这不会添加Option Explicit到任何现有模块中;你必须自己做。

于 2013-07-01T13:26:15.600 回答