Я новичок в VBA, и я пытаюсь написать функцию, которую я могу вызвать из ячеек Excel, которая может открыть закрытую книгу, найти значение ячейки и вернуть ее.
До сих пор я знаю, как написать такой макрос:
Sub OpenWorkbook()
Dim path As String
path = "C:\Users\UserName\Desktop\TestSample.xlsx"
Dim currentWb As Workbook
Set currentWb = ThisWorkbook
currentWb.Sheets("Sheet1").Range("A1") = OpenWorkbookToPullData(path, "B2")
End Sub
Function OpenWorkbookToPullData(path, cell)
Dim openWb As Workbook
Set openWb = Workbooks.Open(path, , True)
Dim openWs As Worksheet
Set openWs = openWb.Sheets("Sheet1")
OpenWorkbookToPullData = openWs.Range(cell)
openWb.Close (False)
End Function
Макрос OpenWorkbook() работает отлично, но когда я пытаюсь вызвать OpenWorkbookToPullData (...) непосредственно из ячейки Excel, это не сработает. Утверждение:
Set openWb = Workbooks.Open(path, , True)
ничего не возвращает.
Кто-нибудь знает, как превратить его в рабочую функцию VBA, которую можно вызвать из ячейки Excel?