DLL расширения Excel VBA "Неверное количество агрументов или недопустимое присвоение свойств" - PullRequest
1 голос
/ 04 августа 2020

Я написал расширение dll в C#, которое я вызываю в коде VBA. Поскольку код в DLL несколько сложнее, я решил разделить функциональность на несколько классов. Это означает, что главная точка входа в мою DLL по-прежнему является основным методом, но там я могу вызывать другие классы и методы.

Все это работало нормально до сегодняшнего дня. Я немного изменил подпись одного метода, потому что мне нужна еще одна переменная, полученная из Excel VBA, и внезапно я больше не мог вызвать метод, и это вызвало следующее исключение:

Неверное количество аргументов или недопустимое присвоение свойств

Код в VBA, из которого я вызываю DLL, выглядит следующим образом (переменная orig_value - это та, которую я добавил)

Public Sub Worksheet_Change(ByVal Target As Range)       
    If TlbMain Is Nothing Then
        Set TlbMain = New EstimationTypeLibrary.Main
    End If

    Call TlbMain.EstimationSheetChanged(ActiveWorkbook, Target, orig_value)
End Sub

Код в C# DLL, которую я вызываю из VBA, выглядит следующим образом (переменная originalValue - это та, которую я добавил)

public void EstimationSheetChanged(Workbook activeWorkbook, Range range, string originalValue)
{
    PublicEstimationSheetProperties.OriginalValue = originalValue;
    EstimationOnChange.EstimationSheetChanged(activeWorkbook, range);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...