Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Другие темы раздела
VBA Цикл расчетов в таблице https://www.cyberforum.ru/vba/thread1746947.html
Имеется файл, где во второй таблице (правее) производятся расчеты с делением (в колонках AE, AH, AK, AN и далее) через формулы. Т.к. данные все время подгружаются в файл, формулы прописаны на...
Поиск значения и переход к ячейке, VBA VBA
Доброго времени суток Я задолбалась не могу никак осуществить поиск по книге Excel такой, что первая ячейка с нужным значением активировалась бы. Задача: книга, в книге листы с названиями...
Скопировать только отчество из другого листа в другой где в одной ячейке находится ФИО VBA
Имеется цикл, который разбивает ФИО кот. находится в одной ячейке, нужно чтобы в другой лист копировались только отчество For i = 4 To 65536 Sheets(2).Cells(i - 1, 1).Resize(, 3) =...
VBA Где ошибка? Вот задание: 1. Mult передается массив и количество элементов, для которых нужно найти произведение. Составить программу вычисления значения функции z=произведение X(1 to 12) + произведение Y(1 to... https://www.cyberforum.ru/vba/thread1746881.html
VBA Как быстро удалять лишние строки? https://www.cyberforum.ru/vba/thread1746854.html
На листе есть структурированные данные: столбцов 40-250 (иногда больше), строк вообще 100 000-140 000 (и очень часто может быть больше). Я нарисовал функцию, которая выбирает уникальные строки,...
Скопировать столбец ФИО из одного листа на другой лист с разбивкой на 3 ячейки VBA
Необходимо копировать столбец ФИО из одного листа на другой лист с разбивкой на 3 ячейки Здесь копируется и разбиваются только две ячейки Sheets(2)..Resize(, 3) =...
Формы VBA . (TextBox и "точка") VBA
Всем привет )) У меня на форме есть четыре TextBox и несколько кнопок , включая кнопку "точка". Мне надо сделать так , что при нажатии на кнопку и на TextBox , точка добавлялась только в один...
VBA Как зафиксировать размер изображения в пикселях Установил изображение на рабочий лист excell, на изображении присутствую части этого изображения ,которые используются как кнопки, на листе они подогнаны так,что кажется будто это 1 картинка.Проблема... https://www.cyberforum.ru/vba/thread1746714.html
VBA Как сделать макрос распределения? https://www.cyberforum.ru/vba/thread1746508.html
Неплохо разбираюсь в VBA, но вот столкнулся с задачей. Есть таблица: яичница омлет блины овсянка сырники стейк из курицы стейк из свинины стейк из телятины продукт вес вес вес вес вес вес вес вес...
VBA 1 кнопкой на двух листах Собственно вычисляются значения в таблицах но на 1 листе, как сделать чтобы кнопками с 1 листа подсчитывались и очищались значения сразу на 2 листах. Прилагаю excel документ, в нем уже все... https://www.cyberforum.ru/vba/thread1746505.html
mfamgn
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 5
28.05.2016, 16:31  [ТС] 0

Разделить данные в нескольких ячейках на строки

28.05.2016, 16:31. Просмотров 939. Ответов 7
Метки (Все метки)

Ответ

Есть два столбца в ячейках которых содержатся строки (от 1 до 10), разделенные с помощью ";".
Например:
[Персона1;Персона2;Персона3][Документ1;Документ2;Документ3]
[Персона4][Документ4]
[Персона5;Персона6][Документ5;Документ6]
[Персона7][Документ7]
[Персона8;Персона9;Персона10;Персона11][Документ8;Документ9;Документ10;Документ11]
Нужно чтобы после обработки макросом это выглядело вот так:
[Персона1][Документ1]
[Персона2][Документ2]
[Персона3][Документ3]
[Персона4][Документ4]
[Персона5][Документ5]
[Персона6][Документ6]
[Персона7][Документ7]
[Персона8][Документ8]
[Персона9][Документ9]
[Персона10][Документ10]
[Персона11][Документ11]
Т.е. разделение затрагивало бы и соседнюю ячейку.

Вот макрос который я использую для разделения ячеек на столбцы, но он работает только с одной ячейкой не затрагивая соседнюю.
Буду очень признателен за помощь.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Sub NoSpaceAndItem(CheckArray As Variant, Simbol As String)
  Dim TempArray(), j As Integer, i As Integer
   ReDim TempArray(1 To UBound(CheckArray))
   i = 1
   For j = 1 To UBound(CheckArray)
     If CheckArray(j) <> "" Then
       TempArray(i) = CheckArray(j)
       i = i + 1
     End If
   Next j
 
 
End Sub
 
Public ValArray As New Collection
Public Sub RemoveValAndDup(Diapazone As Variant, Sort As Boolean, RemoveItem As String)
    Dim AllCells As Range, Cell As Range
    Dim i As Integer, j As Integer
    Dim Swap1, Swap2, Item
    Set AllCells = Diapazone 'передача массива
    On Error Resume Next
    For Each Cell In AllCells.Cells
      If Cell.Value <> RemoveItem And Cell.Value <> "" Then
        ValArray.Add Cell.Text, CStr(Cell.Text)   'Note: the 2nd argument (key) for the Add method must be a string
      End If
    Next Cell
                  '   Сортировка (optional)
   If Sort = True Then
    For i = 1 To ValArray.Count - 1
        For j = i + 1 To ValArray.Count
            If ValArray(i) > ValArray(j) Then
                Swap1 = ValArray(i)
                Swap2 = ValArray(j)
                ValArray.Add Swap1, before:=j
                ValArray.Add Swap2, before:=i
                ValArray.Remove i + 1
                ValArray.Remove j + 1
            End If
        Next j
    Next i
   End If
End Sub
Public Function CountSimbol(Expression As String, FindSimbol As String) As Integer
 ' функция подсчета количества символов в строке
  CountSimbol = Len(Expression) - Len(Replace(Expression, FindSimbol, ""))
End Function
Function Substring(Txt As String, Delimiter As String, n As Integer) As String
  ' функция разбиения строк на отдельные слова
   Dim x As Variant
      x = Split(Txt, Delimiter)
      If n > 0 And n - 1 <= UBound(x) Then
        Substring = x(n - 1)
      Else
        Substring = ""
      End If
End Function
Sub замена2()
    Application.ScreenUpdating = False: ActiveSheet.UsedRange.Replace What:=" ", Replacement:=""
End Sub


Вернуться к обсуждению:
Разделить данные в нескольких ячейках на строки
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2016, 16:31
Готовые ответы и решения:

Разделить данные в ячейках
Здравствуйте, у меня есть список из 1000 почтовых адресов, выгрузка в excel не всегда корректна....

Разделить данные из столбцов в строки
Здравствуйте. Есть xml файл поставщика, в нем данные для каждого товара заданы таким способом. ...

Разделить каждый элемент строки разделить на сумму элементов этой строки
Задан двухмерный массив вещественных чисел А(n,m). Необходимо каждый элемент соответствующей строки...

В нескольких ячейках таблицы Word поставить прочерк во всю длинну
Есть таблица в word. В нескольких ячейках надо поставить прочерк во всю длинну, как такое сделать...

7
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.