Ниже мы рассмотрим программу в Excel VBA, отделяющую строку.

Ситуация:

Separate Strings in Excel VBA

Поместите командную кнопку на листе и добавьте строки следующего кода:

  1. Во-первых, мы объявляем переменную FullName типа String, переменная с именем commaposition типа Integer и переменную I типа Integer.

Dim fullname As String, commaposition As Integer, i As Integer

Проблема, которую мы имеем дело с в том, что мы должны сказать Excel VBA, где мы хотим разделить строку. В случае Смита, Майк запятая находится в положении 6, а в случае Уильямса, Джанет запятая находится в положении 9.

  1. Мы используем цикл для выполнения операций по каждому имени, введенного в Excel. Во-первых, мы инициализируем переменную FULLNAME. Далее, мы используем функцию Instr, чтобы найти положение запятой.

For i = 2 To 7

fullname = Cells(i, 1).Value

commaposition = InStr(fullname, ",")
  1. И, наконец, мы хотим, чтобы написать часть после запятой в колонке B и часть перед запятой в столбце C. Вы можете достичь этого путем добавления строки:

Cells(i, 2).Value = Mid(fullname, commaposition + 2)

Cells(i, 3).Value = Left(fullname, commaposition - 1)

Mid (FullName, commaposition + 2) означает, что мы хотим, чтобы часть FULLNAME начиная с символа «commaposition + 2» (это точно первое имя).

Left (FullName, commaposition — 1) означает, что мы хотим, чтобы часть FULLNAME не начиная с начала и до символа «commaposition- 1» (это именно фамилия).

  1. Не забудьте закрыть петлю.

Next i
  1. Добавьте шесть имен, разделенных запятой и пробелом в Range ( «A2: A7»).

  2. Проверьте программу.

Результат:

Separate Strings Result