2013-09-04 2 views
0

Я не уверен, как или если я могу это сделать ... Я хочу построить имя функции, используя «ap1», что я могу сделать, но Я получаю ошибку «ожидаемого массива». Мысли? Я слишком долго смотрел на это.Построение строки и использование ее в качестве имени массива функций

Вот кусок кода:

Dim ap As Range 
Dim newnum0 As String 
Dim ap1 As Variant 
Dim strswprog as string 
dim strswtype as string 


    If strswprog = "Add PORT" Then 
     ap1 = strswtype & "_AddPort" 
    For Each ap In newrange 
     If ap > 0 Then 
       newnum0 = ap 
       ap = ap1(newnum0) 'Here's the problem 
       ap.Value = newnum0 
     End If 
    Next ap 
    End if 
+3

Я не могу сказать, что вы пытаетесь сделать. Сейчас он говорит, что ap1 не является массивом, что является правильным: ap1 - это строка. – tigeravatar

+0

Значение strswtype равно DMS100, а затем я добавляю на него «_AddPort», поэтому ap1 = «DMS100_AddPort». Я отправляю значение newnum0 в функцию DMS100_AddPort. Есть ли способ сделать это, не настраивая его так: ap = DMS100_AddPort (newnum0), чтобы отправить его функции? – Mike

ответ

1

Ваш комментарий:

значение

strswtype является DMS100, а затем я добавляю в "_AddPort" на так, ap1 = " DMS100_AddPort». Я отправляю значение newnum0 в функцию под названием DMS100_AddPort. Есть ли способ сделать это без , чтобы настроить его так: ap = DMS100_AddPort (newnum0), чтобы отправить его функции?

Для этого используется метод Application.Run:

ap = Application.Run(ap1, newnum0) 
+0

Спасибо, вот и все! :) – Mike

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