Vba: як розділити рядок на основі кількох роздільників
Ви можете використовувати такий базовий синтаксис, щоб розділити рядок на основі кількох роздільників у VBA:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
У цьому конкретному прикладі кожен рядок у діапазоні A2:A7 поділяється на основі дефісів або пробілів у кожному рядку, а потім призначає отримані елементи кожного рядка суміжним клітинкам у стовпцях B, C і D.
Примітка : цей макрос спочатку замінює кожен дефіс пробілом, а потім розділяє кожен рядок залежно від того, де знаходяться пробіли.
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: розділіть рядок на основі кількох роздільників у VBA
Припустімо, що в Excel є такий список імен:
Припустімо, ми хочемо розділити кожне ім’я на основі дефісів або пробілів, а потім призначити результуючі елементи кожного рядка до нових клітинок.
Для цього ми можемо створити такий макрос:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range(" A " & i), " - ", " ")
SingleValue = Split(newString, " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Зверніть увагу, що цей макрос розділяє кожен рядок у стовпці A на основі пробілів і дефісів і відображає окремі текстові елементи кожного рядка в стовпцях B, C і D.
Примітка №1: у цьому прикладі ми розділяємо рядки на основі дефісів і пробілів, але ви можете розділяти рядки на основі будь-яких роздільників, які хочете, вказавши їх у функціях Replace і Split .
Примітка №2 : ви можете знайти повну документацію для функції VBA Split тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання за допомогою VBA:
VBA: як підрахувати випадки появи символів у рядку
VBA: як перевірити, чи містить рядок інший рядок
VBA: як підрахувати клітинки з певним текстом