VBA - функция Split STRING с startPOS и endPOS - PullRequest
1 голос
/ 04 декабря 2011

Мне нужна функция в Excel VBA, которая будет разбивать строку с помощью START_POSITION и END_POSITION.

Как:

function splitxy(text as String, start_pos as Integer, end_pos as Integer) as String

Нужно ли превратить мою строку в массив и использоватьцикл, чтобы получить необходимые символы, или есть более простой способ?

Ответы [ 3 ]

2 голосов
/ 04 декабря 2011

Комментарий как ответ на запрос:

Function splitxy(Text As String, StartPos As Integer, _
                                           EndPos As Integer) As String 

  splitxy = Mid(Text, StartPos, EndPos - StartPos + 1)

End Function
2 голосов
/ 04 декабря 2011
Function splitxy(text As String, start_pos As Integer, end_pos As Integer) As String
splitxy = Mid(text, start_pos, (end_pos - start_pos) + 1)
End Function
0 голосов
/ 25 августа 2016

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

Function makeNumber(n As String)
  n = Replace(n, ",", ".")

  If Len(n) - Len(Replace(n, ".", "")) > 1 Then
    Dim dots As Integer
    Dim pos_of_last_dot As Integer
    Dim integral As String
    Dim decimal As String

    pos_of_last_dot = InStrRev(n, ".", -1)
    integral = Left(n, pos_of_last_dot)
    decimal = Mid(n, pos_of_last_dot)
    integral = Replace(integral, ".", "")
    decimal = Replace(decimal, ".", "")
    n = integral & "." & decimal

   End If

   makeNumber = n
 End Function
...