#excel #vba
#excel #vba
Вопрос:
Как мне разделить и извлечь значения из ячейки с точкой с запятой и линией разрыва строки на несколько столбцов.
Я проверил онлайн, кажется, несколько приближаются, но не соответствуют тому, что мне нужно.
У меня есть рабочий лист под названием «Заказы», и только столбец A заполнен объединенными деталями заказа (см. Ссылку на образец изображения, столбец A)
Я попытался использовать приведенный ниже фрагмент кода. Текст, разделенный на несколько столбцов, но с полным текстом для каждого, а не с желаемым значением записи, не имели строки «Купон»:
Dim ws As Worksheet: Set ws = Worksheets(1)
Dim i as Long
i = ws.UsedRange.Rows.Count
Set orderDetails = ws.Range("A1:A" amp; i)
For Each cell In orderDetails
cell = Replace(cell, vbLf, "")
Next
orderDetails.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, Semicolon:=True
Желаемый результат:
ОБНОВЛЕНИЕ: добавлен столбец значений ячейки
Sub-Total - USD 171.43; VAT - USD 8.57; Shipping - USD 0.00; Total - USD 180.00
Sub-Total - USD 171.43; VAT - USD 8.57; Shipping - USD 0.00; Total - USD 180.00
Sub-Total - USD 471.43; VAT - USD 23.57; Shipping - USD 0.00; Coupon (WELCOME) - USD -70.71; Total - USD 424.28
Sub-Total - USD 371.43; VAT - USD 18.57; Shipping - USD 0.00; Coupon (WELCOME) - USD -70.71; Total - USD 319.29
Комментарии:
1. Вам необходимо изучить метод разделения VBA, который предназначен для решения проблем такого типа.
2. Точно ли заголовки столбцов соответствуют тексту в записях столбца A? Я бы предложил использовать
Split
.3. @SJR, не совсем. Например, строка купона. Для этого мне нужны два столбца. Название купона и стоимость купона
4. Совпадают ли остальные? Для купона они всегда соответствуют одному и тому же имени макета -USD-value? Может ли какое-либо из них отсутствовать в какой-либо строке?
5. Все они соответствуют формату: имя-USD-значение. Просто купон отличается: есть название купона (), и оно отображается в ячейке, если оно применено или нет (например, в A1 и A2 по сравнению с A3 и A4)