首页 > 解决方案 > 子名称上的 VBA“无效限定符”错误

问题描述

我正处于创建 Excel 工作簿的早期阶段,它允许您使用 VBA 根据工作簿中的客户端数据生成和发送 Outlook 电子邮件。但是,我在 Sub 声明行中收到“Invalid Qualifier”的编译错误。

我的问题代码(来自这里)

'Get file path and put it in the proper cell
Sub GetFilePath()

    Dim DialogBox As FileDialog
    Dim path As String

    Set DialogBox = Application.FileDialog(msoFileDialogFilePicker)

    DialogBox.Title = "Select quarterly report for " & Range("A" & ActiveCell.Row) & _
        " " & Range("B" & ActiveCell.Row)
    DialogBox.Filters.Clear
    DialogBox.Show

    If DialogBox.SelectedItems.Count = 1 Then
        path = DialogBox.SelectedItems(1)
    End If

    Range("D" & ActiveCell.Row) = path
    Range("D").Column.AutoFit

End Sub

这样做的基本要点是让它提示用户选择一个文件,然后将该文件路径放在一个单元格中,以便稍后我可以在 Outlook 窗口中将其用作附件。

这第一次运行正确,但将不再工作,并在 Sub name 行上引发“Invalid Qualifier”错误。

调试器中突出显示的问题行

我努力了:

标签: excelvbaoutlook

解决方案


有问题的行是:

Range("D").Column.AutoFit
  • "D"不是 : 的有效地址Range应该是"D:D"
  • Column是列号,而不是对整个列的引用。

修理:

Range("D:D").EntireColumn.AutoFit

或者

Columns("D").AutoFit

推荐阅读