Вызов Sub в VBA с несколькими аргументами

Я хочу вызвать подпрограмму с несколькими аргументами, но получаю ошибку Ошибка синтаксиса

Пробовал на MS Excel 2013.

Sub Withdrawal(Query As String, Savelocation As String)

    'Query Data
    Dim ReturnArray
    Dim Conn As New ADODB.Connection
    Dim mrs As New ADODB.Recordset
    Dim DBPath As String, sconnect As String
    DBPath = Application.ActiveWorkbook.Path + "\Data.xlsx"
    sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
    Conn.Open sconnect
    mrs.Open Query, Conn
    ThisWorkbook.Worksheets(Savelocation).Range("A3").CopyFromRecordset mrs
    mrs.Close
    Conn.Close
End Sub

Sub CashWithdrawal()
    Dim CashWFYC As String
    Dim Location As String
    Location = "CashWithdrawal"
    CashWFYC = "SELECT TOP 10 * FROM [TT$]"
    sSQLSting = CashWFYC 
    Withdrawal(sSQLSting, Location)
End Sub

Я ожидаю, что результат, полученный из этого sSQLSting запроса, должен быть сохранен в Location

В какой строке ошибка?

QHarr 22.05.2019 16:48

Удалите скобки: Withdrawal sSQLSting, Location (к вашему сведению, это уже встречалось много-много раз)

Rory 22.05.2019 16:49

@Рори Спасибо. Только что нашел дубликат для закрытия. Я не должен был быть таким ленивым.

QHarr 22.05.2019 16:53

Ваш фактический код был Withdrawal (sSQLSting, Location), а не Withdrawal(sSQLSting, Location). Это пространство - это VBE, говорящий вам: «Это не список аргументов, это выражение, которое я попытаюсь оценить и передать ByVal в качестве первого аргумента в процедуру Withdrawal».

Mathieu Guindon 22.05.2019 18:10
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
4
540
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны называть без круглых скобок. В круглых скобках для вызовов функций.

Withdrawal sSQLSting, Location 

Пожалуйста, поместите Option Explicit вверху вашего кода и объявите все ваши переменные, в том числе с явным типом.

Убрав скобки, я получил еще одну ошибку ByRef argument type mismatch

Kry Chulsa 22.05.2019 16:51

Объявите sSQLSting как строку. Это означает, что ваша принимающая подсистема хочет две строки, поэтому проверьте, что оба передаваемых аргумента являются строками. И поместите Option Explicit вверху вашего сабвуфера.

QHarr 22.05.2019 16:54

Большое спасибо. Я нашел это, я забыл это

Kry Chulsa 22.05.2019 16:57

пожалуйста. Извините, что резко закрыла вопрос на вас. Я должен был сделать это немедленно, но особо не думал.

QHarr 22.05.2019 16:57

Другие вопросы по теме