Как открыть существующую книгу в VBA? - PullRequest
0 голосов
/ 28 февраля 2019

Я хотел бы использовать свою функцию в новой рабочей книге, функция использует данные из старой рабочей книги, где было написано.

Моя функция в новой рабочей книге работает правильно только в том случае, если старая рабочая книга открытатоже.В противном случае результат равен # Значение.

Мой код:

Function findfix(EAN,year, As Variant)

Set wb = Workbooks.Open("H:\dokumenty\NPU\NPUfix.xlsm")
ThisWorkbook.Activate

rowPos = findEAN(EAN)

c = Workbooks("NPUfix").Sheets("EAN").Cells(rowPos, 18).Value
.
.
.

1 Ответ

0 голосов
/ 28 февраля 2019

Просто скопируйте функцию и соответствующий код в новый модуль, в новую рабочую книгу

Затем просто измените ("H:\dokumenty\NPU\NPUfix.xlsm") на новое местоположение.

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 TestGetValue()
    p = "c:\XLFiles\Budget"
    f = "Budget.xls"
    s = "Sheet1"
    a = "A1"
    MsgBox GetValue(p, f, s, a)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...