Разделение информации на строки (Microsoft Excel)
У Джеймса есть данные на листе, который состоит из ряда строк. Один из столбцов данных включает ячейки, в каждой из которых есть несколько строк. (Данные в ячейке были разделены на строки нажатием Alt + Enter между элементами.) Джеймс хотел бы разделить эти данные на несколько строк. Например, если в одной ячейке в строке было три строки данных, то данные в этой ячейке должны быть разделены на три строки.
Excel предоставляет удобный способ разбить данные на отдельные столбцы с помощью инструмента «Текст в столбцы». Это можно использовать для разделения данных на основе наличия символа ASCII 10, который Excel вставляет при нажатии Alt + Enter. Проблема в том, что при успешном разбиении данных на отдельные столбцы они не попадают в отдельные строки, как просил Джеймс.
Это означает, что решение этой проблемы должно включать использование макроса. Один из подходов показан в следующем коде. В этом примере макрос предполагает, что вы хотите «развернуть» все на листе, и что данные на листе начинаются в строке 1.
Sub CellSplitter() Dim Temp As Variant Dim CText As String Dim J As Integer Dim K As Integer Dim L As Integer Dim iColumn As Integer Dim lNumCols As Long Dim lNumRows As Long iColumn = 4 Set wksSource = ActiveSheet Set wksNew = Worksheets.Add iTargetRow = 0 With wksSource lNumCols = Cells(1,Columns.Count).End(xlToLeft).Column lNumRows = Cells(Rows.Count,1).End(xlUp).Row For J = 1 To lNumRows CText = .Cells(J, iColumn).Value Temp = Split(CText, Chr(10)) For K = 0 To UBound(Temp) iTargetRow = iTargetRow + 1 For L = 1 to lNumCols If L <> iColumn Then wksNew.Cells(iTargetRow, L) _ = .Cells(J, L) Else wksNew.Cells(iTargetRow, L) _ = Temp(K) End If Next L Next K Next J End With End Sub
Обратите внимание, что для запуска макроса вам нужно будет указать с помощью переменной iColumn столбец, содержащий ячейки, которые нужно разделить.
Как здесь написано, макрос разделяет информацию в четвертом столбце. Кроме того, разделенные версии ячеек хранятся на новом листе, так что исходный лист не изменяется.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9396) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Splitting_Information_into_Rows [Разделение информации на строки]
.