excel vba несоответствие типа byref

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

 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

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


person user3701191    schedule 25.02.2015    source источник
comment
Кстати, это: 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 Как строка   -  person Dan Donoghue    schedule 26.02.2015
comment
И если вы сделаете то, что предлагает @DanDonoghue, ваш исходный код должен работать. :)   -  person Rory    schedule 26.02.2015


Ответы (2)


Объявите аргумент с ключевым словом 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
person Wiktor Stribiżew    schedule 25.02.2015

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

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

Dim lastTime, nextTime, allTimes() как дата

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

person Deej    schedule 23.08.2017