Jak wywołać funkcję VBA z komórek Excela? [duplikować
To pytanie ma już odpowiedź tutaj:
Jak wywołać funkcję VBA z komórek Excela (2010)? 9 odpowiedziJestem nowicjuszem w języku VBA i próbuję napisać funkcję, którą mogę wywołać z komórek Excela, która może otworzyć skoroszyt zamknięty, wyszukać wartość komórki i zwrócić ją.
Do tej pory wiem, jak napisać takie makro:
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
Makro OpenWorkbook () działa doskonale, ale gdy próbuję wywołać OpenWorkbookToPullData (...) bezpośrednio z komórki Excela, to nie działa. Wyrok
Set openWb = Workbooks.Open(path, , True)
returns Nic.
Czy ktoś wie, jak przekształcić go w działającą funkcję VBA, którą można wywołać z komórki Excela?