2016-04-23 2 views
1

Я не могу получить значение, используя функцию «getvalue» в vba.Функция VBA «getvalue»

Sub testgetvalue1() 
Dim p As String 
Dim t As String 
Dim s As String 
Dim a As String 
p = "D:\Archive Mail" 
t = "Excel_1" 
s = "Sheet1" 
a = "A1" 
msgbox getvalue(p, t, s, a) 
End Sub 

Он всегда выдает имя ошибки «Sub или функция не определена», и это выдвигает на первый план «GetValue» function.I предположить, что нет никакой проблемы с кодом, то почему я получаю сообщение об ошибке?

совет ....

С уважением, Prashant

+0

'getvalue' не является нативной функцией. Вам не хватает части кода, где она написана как пользовательская функция (UDF). – Jeeped

+0

Getvalue не заглавными, поэтому очевидно, что нет такой родной функции, и вы должны сделать ее самостоятельно –

ответ

0

GetValue не предопределенная функция, так что вы должны определить сами. Возможно, вы прочитали статью, которая определила и использовала ее. Here такая статья, которая определяет его следующим образом:

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 

Включите это в модуле, и вы должны быть готовы к работе.

+0

Решено ли это решить вашу проблему? Не могли бы вы дать некоторую обратную связь? – trincot

+0

большое спасибо ... это очень помогло. Оценивать – Prashant

+0

В этом случае вы могли бы принять ответ (щелкните по серой галочке слева от ответа)? – trincot