为什么收到错误消息“运行时错误'91'” abd,该如何解决?

时间:2019-07-28 18:53:35

标签: excel vba ms-word

我是VBA和宏的新手,这是我第一次尝试编码。所以...我有一个Word文档,可以用作生成报告的模板。 Word文档具有链接到excel文档的表格/图表。我正在尝试创建一个宏,该宏将使用word文档中链接的现有源并将其更改/更新到新的所需位置。想法是让用户运行宏,然后提示您选择一个excel文件,该宏将自动更新所有表格和图表。

我收到一个

  

“运行时错误'91':对象变量或未设置块变量”

以下行的消息:

ActiveDocument.Fields(x).LinkFormat.SourceFullName = newFile

经过一些研究,我相信问题是我正在将对象变量分配给一个值。由于是对象,因此需要“设置”哪个?因此,我尝试将行更改为以下

Set ActiveDocument.Fields(x).LinkFormat.SourceFullName = newFile

得到一个

  

“编译错误:无效使用属性”

代码.SourceFullName上的

消息。

如前所述,我是一个完全的新手,现在实际上已经迷路了。任何建议和指示都将受到欢迎。将来,我有很多选择可以使报告的其他方面实现自动化,但这是报告过程的主要时间消耗者,也是我从此开始的原因。

谢谢你们!

Sub changeSource()

Dim dlgSelectFile As FileDialog 'FileDialog object '
Dim thisField As Field
Dim selectedFile As Variant

Dim newFile As Variant
Dim fieldCount As Integer '
Dim x As Integer

Set dlgSelectFile = Application.FileDialog(FileDialogType:=msoFileDialogFilePicker)


With dlgSelectFile
   .Filters.Clear 'clear filters
  .Filters.Add "Microsoft Excel Files", "*.xls, *.xlsb, *.xlsm, *.xlsx" 'filter for only Excel files
  'use Show method to display File Picker dialog box and return user's action

  If .Show = -1 Then
    For Each selectedFile In .SelectedItems
         newFile = selectedFile 'gets new filepath
       Next selectedFile
     Else 'user clicked cancel
   Exit Sub
  End If
End With
Set dlgSelectFile = Nothing

'update fields
  fieldCount = ActiveDocument.Fields.Count
  For x = 1 To fieldCount
    ActiveDocument.Fields(x).LinkFormat.SourceFullName = newFile
  Next x

MsgBox "Source data has been successfully imported."


End Sub

0 个答案:

没有答案