Как я могу отобразить в массиве в VB - PullRequest
0 голосов
/ 19 мая 2018
 Dim textstring as String,warray() as String
 textstring=Range("A3").Value
 warray=split(textstring,"")
 If isDate(warray(0))=True Then
 Range("A4").Value=warray(1)
 End If

Этот код отображает только одно слово, другие слова не отображаются.

1 Ответ

0 голосов
/ 19 мая 2018

Как правило, функция разделения vba используется для разделения строки на массив из нескольких элементов в разделителе.Если в качестве разделителя используется пробел, предложение или абзац будут разделены на отдельные слова.

В качестве разделителя указывается строка нулевой длины (например, "").Из документов msdn :

... Если разделитель - строка нулевой длины, возвращается одноэлементный массив, содержащий всю строку выражения.

Поэтому, если вы хотите разделить что-либо на несколько частей, вы не можете использовать строку нулевой длины в качестве разделителя.

Если вы использовали пробел в качестве разделителя и указалидругих параметров нет, тогда ваш пример будет разбит на четыре элемента массива.Я подозреваю, что вы только хотите отделить время и оставить название шоу вместе.Для этого используется параметр limit .Предел 2 разделит вашу исходную строку на время и название шоу.

Option Explicit

Sub Macro3()
    Dim textstring As String, warray() As String
    textstring = Range("A3").Value
    warray = Split(expression:=textstring, delimiter:=" ", limit:=2)
    If IsDate(warray(0)) Then
        Range("A4").Value = warray(0)
        Range("A5").Value = warray(1)
    End If
End Sub

enter image description here

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