Неправильно используется функция Right - PullRequest
0 голосов
/ 11 июня 2019

Когда я использую свой код и запускаю Array = "0-28", получается Arrex, равный "28", что я и хочу. Однако, когда я запускаю Array = "0-2", Arrex выходит с "-2". Это не то, что я хочу, так как я просто хочу то, что находится справа от дефиса. Я думал, что правильная функция будет справа от строки, пока я искал дефис, но я, должно быть, где-то напутал. Любая помощь будет принята с благодарностью

Я посмотрел на Arrex = Right (TestText, DashSearch +1) и Arrex = Right (TestText, DashSearch -1), но оба они предположительно потерпели неудачу.

Dim Array As String
Dim Arrex As String
Dim DashSearch As Integer

TestTextOne = "0-2" 'First Test
TestTextTwo = "0-28" 'Second Test
DashSearch = InStr(TextTestOne, "-")
If (DashSearch > 0) Then
Arrex = Right(TextTestOne, DashSearch)
Else
Arrex = TextTestOne
End If

Ответы [ 2 ]

3 голосов
/ 11 июня 2019

Я бы использовал Split, который будет разделяться с помощью разделителя, например,

Sub x()

Dim Array1 As String
Dim Arrex As String
Dim DashSearch As Variant

Array1 = "0-2" 'First Test
'Array1 = "0-28" 'Second Test
DashSearch = Split(Array1, "-")

If UBound(DashSearch) > 0 Then
    Arrex = DashSearch(1)
Else
    Arrex = Array1
End If

End Sub

Вы можете сделать это с помощью формул - ВЛЕВО / СРЕДНИЙ / ВПРАВО и НАЙТИ.

=IFERROR(MID(A1,FIND("-",A1)+1,255),A1)
1 голос
/ 11 июня 2019

Чтобы исправить свой код, вам нужно настроить Right, больше ничего

Option Explicit

Sub TestIt()
    Dim vArray As String
    Dim Arrex As String
    Dim DashSearch As Integer

    vArray = "0-2" 'First Test
    vArray = "0-28" 'Second Test
    DashSearch = InStr(1, vArray, "-", vbTextCompare)
    If (DashSearch > 0) Then
        Arrex = Right(vArray, Len(vArray) - DashSearch)
    Else
        Arrex = vArray
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...