1

元のブックを開かずに、閉じたブックのセルから別のブックにデータをコピーしようとしています。

私がこれまでに示したコードは...動作しますが、開いているブックの特定のセルにデータを書き込むことができる必要があります。

Private Function GetValue(path, file, sheet, ref)
'   Retrieves a value from a closed workbook
    Dim arg As String
'   Make sure the file exists
    If Right(path, 1) <> "\" Then path = path & "\"
    If Dir(path & file) = "" Then
        GetValue = "File Not Found"
        Exit Function
    End If
'   Create the argument
    arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
      Range(ref).Range("A1").Address(, , xlR1C1)
'   Execute an XLM macro
    GetValue = ExecuteExcel4Macro(arg)
End Function

Sub TestGetValue2()
    p = "F:\excel_Project"
    f = "Book1.xlsx"
    s = "Sheet1"
    a = "A1"
 GetValue(p, f, s, a) = ("A1")

End Sub
4

2 に答える 2

1

関数が返す値をセルの値に設定する場合はGetValue、次のようにします。

Range("A1") = GetValue(p, f, s, a)

ただし、宛先 (つまり、書き込みたい場所GetValue) が と同じサイズ/寸法であることを確認する必要がありますGetValue。たとえば、GetValueがセルの場合、上記は期待どおりに機能します。ただし、GetValueが 1x2 の範囲のセルで、上記のコードを使用するA1と、GetValue

于 2013-11-14T16:11:03.077 に答える