2015-02-25 4 views
0

Я пытаюсь передать wb_ и ws_variables к функции getinfofromclosedfile ниже, я продолжаю получать несоответствие аргумента byref для переменной wb_name.excel vba byref type несоответствие

Sub check_update() 

Dim wb_path, wb_name, ws_name, ws_cell As String 

AGuser = GetUser 
If Dir("c:\users\" & AGuser & "\documents\appraiser_genie\genieold.xlsm") <> "" Then 
    wb_path = "c:\users\" & AGuser & "\documents\" 
    wb_name = "genieold.xlsm" 
    ws_name = "input" 
    ws_cell = Cells(17, 2).Address 
    Sheets("input").Cells(17, 2).Select = GetInfoFromClosedFile(wb_path, wb_name, ws_name, ws_cell) 
    End If 
End Sub 

Private Function GetInfoFromClosedFile(ByVal wbPath As String, _ 
    wbName As String, wsName As String, cellRef As String) As Variant 

любая помощь будет оценена!

+1

На стороне записки, это: Dim wb_path, wb_name, ws_name, ws_cell Поскольку String не делает то, что, по вашему мнению, это делает, вам нужно установить каждый из них следующим образом: Dim wb_path As String, wb_name As String, ws_name As String, ws_cell As String –

+0

И если вы делаете то, что предлагает @DanDonoghue, ваш исходный код должен работать. :) – Rory

ответ

0

Объявление аргумента ByVal ключевое слово: ByVal wbName As String, ByVal wsName As String.

Function GetInfoFromClosedFile(ByVal wbPath As String, ByVal wbName As String, ByVal wsName As String, cellRef As String) As Variant 
0

https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/dim-statement

Объявление нескольких переменных Вы можете объявить несколько переменных в одном операторе объявления, указав имя переменной для каждого из них, и после каждого имени массива с круглыми скобками. Несколько переменных разделяются запятыми. VB

Dim LastTime, nextTime, allTimes() As Дата

Не уверен, что Дэн Донахью был на о, но вы можете объявить несколько переменных таким образом (см выше ссылке)

Смежные вопросы