Я создал строку, разделенную запятой. Я хочу использовать эту строку в качестве входных данных в процедуре Application.Run.Используйте запятую в качестве параметров функции
Строка выглядит точно так же, как показано ниже - в кавычках ..
MyString = "First_Number", "Second_Number", "Third_Number"
Я хочу использовать эту строку в качестве входных параметров:
Application.Run("'" & "Book2.xlsm" & "'!MySub", *MyString*)
Он не работает .. я получаю " аргумент не оптимален ".
Я строю строку со следующим кодом, а диапазон - это просто строка с параметрами.
Function csvRange(myRange As Range)
Dim csvRangeOutput
For Each entry In myRange
csvRangeOutput = csvRangeOutput & entry.Value & """, " & """"
Next
csvRange = Left(csvRangeOutput, Len(csvRangeOutput) - 4)
End Function
Надеюсь, что кто-то может помочь.
У меня действительно нет времени, чтобы ответить полностью, но взгляните на это: https://stackoverflow.com/questions/30536949/custom-menu-passing-a-worksheet-variable-through-onaction VBA смешно с подсчетами котировок, поэтому убедитесь, что debug.print и убедитесь, что каждый тип переменной имеет соответствующее количество котировок вокруг него. –
Просто передайте в одной строке, например 'MyString =" first_number, second_number, third_number ", а затем в' MySub' используйте 'Split', чтобы разделить ее на отдельные аргументы и использовать по мере необходимости? – Dave
Откуда вы получаете значения для 'MyString'? Они различаются по количеству? Как насчет ParamArray? – Brian