Excel VBA открыть книгу в каталоге, если она содержит значение в этой ячейке. Макрос работает очень медленно [дубликат]

Вы можете получить доступ к https://symfony.com/installer в своем браузере? Если вы можете, он загрузит файл PHAR для вас. Этот файл готов к использованию. Вы можете поместить это в свой каталог «projects» и использовать его как:

> php symfony.phar new blog

Или вы можете переместить его в место, находящееся в вашем PATH, и создать исполняемый файл bat:

@echo off
php "C:\path\to\symfony.phar" %*

Теперь вы можете использовать его следующим образом:

> symfony new blog
9
задан pnuts 30 January 2015 в 15:02
поделиться

4 ответа

21
ответ дан Siddharth Rout 22 August 2018 в 09:19
поделиться
Data = "'" & GetDirectory & "[" & GetFileName & "]" & Sheet & "'!" & Range(Address).Range("A1").Address(, , xlR1C1)

Address = "$C$3"
GetDirectory = "C:\Users\my.name\Desktop\"
GetFileName = "QOS DGL stuff.xlsx"
Sheet = "ACL"
-2
ответ дан Gorodeckij Dimitrij 22 August 2018 в 09:19
поделиться

Подобное приложение, но не жестко закодированные пути, как в приведенных выше примерах. Эта функция копирует значение из другой закрытой книги, аналогичной функции = INDIRECT (), но не такой сложной. Это возвращает значение ... не ссылку, поэтому его нельзя использовать с дополнительными функциями, требующими ссылок (т. Е .: VLOOKUP ()). Вставьте этот код в новый модуль VBA:

'Requires filename, sheetname as first argument and cell reference as second argument
'Usage: type in an excel cell -> =getvalue(A1,B1)
'Example of A1 -> C:\TEMP\[FILE1.XLS]SHEET1'
'Example of B1 -> B3
'This will fetch contents of cell (B3) located in (sheet1) of (c:\temp\file1.xls)

'Create a module and paste the code into the module (e.g. Module1, Module2)

Public xlapp As Object

Public Function getvalue(ByVal filename As String, ref As String) As Variant

' Retrieves a value from a closed workbook
    Dim arg As String
    Dim path As String
    Dim file As String

    filename = Trim(filename)

    path = Mid(filename, 1, InStrRev(filename, "\"))
    file = Mid(filename, InStr(1, filename, "[") + 1, InStr(1, filename, "]") - InStr(1, filename, "[") - 1)

    If Dir(path & file) = "" Then
        getvalue = "File Not Found"
        Exit Function
    End If

    If xlapp Is Nothing Then
        'Object must be created only once and not at each function call
        Set xlapp = CreateObject("Excel.application")
    End If


    ' Create the argument
    arg = "'" & filename & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)

    'Execute an XLM macro
    getvalue = xlapp.ExecuteExcel4Macro(arg)

End Function
0
ответ дан RexBarker 22 August 2018 в 09:19
поделиться

Код выше

strInfoCell = "'" & strPath & "[" & strFile & "]Sheet1'!R3C3"

myvalue = ExecuteExcel4Macro(strInfoCell)

Должен прочитать

strInfoCell = "'" & strPath & "[" & strFile & "]" & "Sheet1'!R3C3"

myvalue = ExecuteExcel4Macro(strInfoCell)

Отсутствует «& amp;»

Нет необходимости в функции

Приветствия Нила

0
ответ дан Vijay 22 August 2018 в 09:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: