2

これらの行を使用して、閉じたワークブックから値を取得します。

Arg = "'" & Path & "[" & File & "]" & Sheet & "'!" & "R4C4"  
Arg = CStr(Arg)
GetValue = ExecuteExcel4Macro(Arg)

範囲から値を取得するループ以外の方法はありますか? ループ ソリューションは機能していますが、 で範囲を直接取得できればより明確になりますExecuteExcel4Macro。に範囲を入力しようとしましたArgが、エラーが返されます。

チャートについても同じ質問があります。どうすれば入手できますか? 当面の私の解決策は、値を取得してチャートを再プロットすることです。それは機能しますが、機能があればもっと幸せGetChart(Chartname)です。

ADODB 接続を使用して、閉じたワークブックから値を取得できることがわかりました。しかし、 に比べて少し複雑すぎましたExecuteExcel4Macro。範囲/チャートの場合、ADODB接続を使用する方が簡単ですか?

4

1 に答える 1

5

次のコードは、閉じたブックの範囲から情報を取得し、アクティブなブックの同じ範囲にコピーします。

    Sub GetRange()
        With Range("A1:D50")                                    'set range to copy from / to.
            .Formula = "='C:\E3_Test\[CC_Data.xlsx]AllData'!A1" 'refers to a workbook, sheet and first cell.
                                                                'It will put the relative references into the target sheet correctly.
            .Value = .Value                                     'changes formula to value.
        End With
    End Sub
于 2013-06-07T10:10:40.550 に答える