0

こんにちは、[実行時エラー '448': 名前付き引数が見つかりません] というエラーが表示されました。

Set qt = ThisWorkbook.Sheets(server_hostname).ListObjects.Add(Connection:=oRS, _
Destination:=ThisWorkbook.Sheets(server_hostname).Range("A1")).QueryTable

完全なソース コードは次のとおりです。

Sub getavgcpu(server_hostname)

Dim oCn As ADODB.Connection
Dim oRS As ADODB.Recordset
Dim ConnString As String
Dim SQL As String


Dim qt As QueryTable
ThisWorkbook.Sheets(server_hostname).Activate

ConnString = "Driver={MySQL ODBC 5.1 Driver};Server=localhost; _
Database=test; User=root;Password=123456;Option=3;"
Set oCn = New ADODB.Connection
oCn.ConnectionString = ConnString
oCn.Open

SQL = "SELECT cpu_max_unix_0.LOGDATE as 'Date of Month', cpu_max_unix_0.CPU as 'CPU   Utilization %' FROM test.cpu_max_unix cpu_max_unix_0 where (cpu_max_unix_0.LOGDATE between '" & fromDateStr & "' and '" & toDateStr & "') And  (cpu_max_unix_0.SERVER_NAME='" & server_hostname & "') Order By cpu_max_unix_0.LOGDATE"

Set oRS = New ADODB.Recordset
oRS.Source = SQL
oRS.ActiveConnection = oCn
oRS.Open

'Set qt = ThisWorkbook.Sheets(server_hostname).QueryTables.Add(Connection:=oRS, _
'Destination:=ThisWorkbook.Sheets(server_hostname).Range("A1"))

Set qt = ThisWorkbook.Sheets(server_hostname).ListObjects.Add(Connection:=oRS, _
Destination:=ThisWorkbook.Sheets(server_hostname).Range("A1")).QueryTable



qt.Refresh

If oRS.State <> adStateClosed Then
oRS.Close
End If


If Not oRS Is Nothing Then Set oRS = Nothing
If Not oCn Is Nothing Then Set oCn = Nothing


End Sub

助けてください!

4

2 に答える 2

1

次のように、最初の引数(SourceType)を使用してコードを試しました:

Set qt = ThisWorkbook.Sheets(server_hostname).ListObjects.Add( _
    SourceType:=XlListObjectSourceType.xlSrcQuery, _
        Source:=oRS, _
            Destination:=ThisWorkbook.Sheets(server_hostname).Range("A1")).QueryTable

そしてそれはうまくいきます。

于 2012-05-22T00:15:25.793 に答える
0

未テスト

これを試して

Dim ws As Worksheet

'
'~~> Rest of the code
'

Set ws = ThisWorkbook.Sheets(server_hostname)

Set objListObject = ws.ListObjects.Add(SourceType:=xlSrcExternal, Source:=oRS, _
LinkSource:=True, TableStyleName:=xlGuess, Destination:=ws.Range("A1"))

'
'~~> Rest of the code
'

また、MSによるこのリンクを参照してください

トピック: ListObjects.Add メソッド (Excel)

リンク: http://msdn.microsoft.com/en-us/library/ff823155.aspx

于 2012-05-21T23:40:16.947 に答える