0

xlsm テンプレート ファイルをユーザーにダウンロードしています。ダウンロード後にドキュメントを開くと、「ThisWorkbook.Sheets("DataSheet").Activate」行で「Worksheet クラスの Activate プロパティを取得できません」というエラーが一貫して表示されません。私が間違っていることを理解できません。

私のコードは、

Sub GetData(hostName As String, id As String)

  'Construct the Complete URL to get the saved view data
  Dim URL As String
  URL = hostName + "/Controller/Action?param=" + id

  ThisWorkbook.Sheets("DataSheet").Activate
  ThisWorkbook.Sheets("DataSheet").Cells.ClearContents

  With ActiveSheet.QueryTables.Add( _
        Connection:="URL;" + URL, _
        Destination:=Range("a1")) _
        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
  End With
End Sub

何か案は?

更新:ダウンロード後に初めて開いたときにのみこのエラーが発生します(アプリからユーザーにダウンロードしています - マクロが有効なドキュメント - XLSM )。ドキュメントを閉じて再度開くと、正常に動作しています:(

4

1 に答える 1

1

以下のようにコードを変更してみてください。

Sub GetData(hostName As String, id As String)

  'Construct the Complete URL to get the saved view data
  Dim URL As String
  URL = hostName + "/Controller/Action?param=" + id

  ThisWorkbook.Sheets("DataSheet").Cells.ClearContents ' leaves formatting

  With Sheets("DataSheet").QueryTables.Add( _
        Connection:="URL;" + URL, _
        Destination:=Range("a1")) _
        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
  End With
End Sub
于 2013-05-23T10:44:18.840 に答える