Функция возвращает 0 - PullRequest
       6

Функция возвращает 0

0 голосов
/ 18 декабря 2018

Я пишу процедуру импорта файла.У меня есть номера моих столбцов, сопоставленные между двумя файлами как функция

Я передаю переменную с именем c, которая является столбцом в файле импорта, затем я использую case select в функции, чтобы вывести другое имя переменной сотображенные номера столбцов (что я, вероятно, делаю неправильно

Выбор регистра работает в том смысле, что он останавливается на правильном регистре, проходит через cNew = x и затем переходит к концу функции

У меня проблема в том, что новая переменная всегда возвращает 0. Переменные и функции затемнены как целые числа

For c = 2 To 19
cNew = cMapped(c)
MsgBox (cNew)
Next c

Function cMapped(c As Integer) As Long
Select Case c
    Case Is = 1
    cNew = 1
    Case Is = 2
    cNew = 3
    Case Is = 3
    cNew = 2
    Case Is = 4
    cNew = 7
    Case Is = 5
    cNew = 5
    Case Is = 6
    cNew = 16
    Case Is = 7
    cNew = 19
    Case Is = 8
    cNew = 21
    Case Is = 9
    cNew = 27
    Case Is = 10
    cNew = 30
    Case Is = 11
    cNew = 6
    Case Is = 12
    cNew = 11
    Case Is = 13
    cNew = 10
    Case Is = 14
    cNew = 32
    Case Is = 15
    cNew = 28
    Case Is = 16
    cNew = 33
    Case Is = 17
    cNew = 99
    Case Is = 18
    cNew = 50
    Case Is = 19
    cNew = 8
End Select

End Function

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Пожалуйста, попробуйте это.Вы должны вернуть значение таким образом.И я думаю, что select выглядит так в VBA.

Function cMapped(c As Integer) As Long

Select Case c
    Case 1:
    cNew = 1
    Case 2:
    cNew = 3

End Select
cMapped = cNew

End Function
0 голосов
/ 18 декабря 2018

как ответили user10798192 и Michael Puckett II Я совершенно очевидно, что ничего не возвращал

Здесь был настроенный код;

   For c = 2 To 19
     cNew = cMapped(c)
     MsgBox (cNew) 
     Next c

И исправленная функция

Function cMapped(c As Integer) As Long
Select Case c
    Case Is = 1
    cMapped = 1
    Case Is = 2
    cMapped = 3
    Case Is = 3
    cMapped = 2
    Case Is = 4
    cMapped = 7
    Case Is = 5
    cMapped = 5
    Case Is = 6
    cMapped = 16
    Case Is = 7
    cMapped = 19
    Case Is = 8
    cMapped = 21
    Case Is = 9
    cMapped = 27
    Case Is = 10
    cMapped = 30
    Case Is = 11
    cMapped = 6
    Case Is = 12
    cMapped = 11
    Case Is = 13
    cMapped = 10
    Case Is = 14
    cMapped = 32
    Case Is = 15
    cMapped = 28
    Case Is = 16
    cMapped = 33
    Case Is = 17
    cMapped = 99
    Case Is = 18
    cMapped = 50
    Case Is = 19
    cMapped = 8
End Select
End Function
0 голосов
/ 18 декабря 2018
Select Case c
  Case 1
    cNew = 1
  Case 2
    cNew = 2
  ...
return cNew
...

Это работает лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...