'How to get text from wrapped text show on different columns using VBA
I have a vba script that copies and paste data from one workbook to the other. The data that is being pasted over are wrapped text. I need my vba script to take the wrapped text and turn it to what you see below.
Below is the data that is being copied that has the wrapped text.
Below is what I want it to look like when pasting to the new workbook.
Below is my script of what I have right now.
Sub Get_Data_From_File()
Dim FileToOpen As Variant
Dim OpenBook As Workbook
FileToOpen = Application.GetOpenFilename(Title:="Browse for your File & Import Range", FileFilter:="Excel Files (*.xls*),*xls*")
Application.ScreenUpdating = False
Cells.WrapText = False
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Worksheets("MyFile").Range("A1:A352:I1:I352").copy _
Workbooks("Book1").Worksheets("Sheet1").Range("A1:A352:I1:I352").PasteSpecial xlPasteValues
'OpenBook.Close False
End If
Application.ScreenUpdating = True
End Sub
Solution 1:[1]
Perhaps this can get you going...
Sub alphanumEric()
Dim i&, s, v
s = OpenBook.Worksheets("MyFile").Range("D2").Value2
s = Split(s, vbLf)
ReDim v(0 To UBound(s), 1 To 1)
For i = 0 To UBound(s)
v(i, 1) = s(i)
Next
Workbooks("Book1").Worksheets("Sheet1").Range("D2").Resize(UBound(s) + 1).Value2 = v
End Sub
Solution 2:[2]
This will covert the cell text into 4 cells if each character is separated by line feed. Note this example copies from cell A1 to B1.
Dim arr As Variant, rowCount As Long
' Split the text to an array by line feed
arr = Split(Sheet1.Range("A1").Value, vbLf)
rowCount = UBound(arr) - LBound(arr) + 1
' Copy to the new cells
Sheet1.Range("B1").Resize(rowCount, 1) = WorksheetFunction.Transpose(arr)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Excel Hero |
Solution 2 | Paul Kelly |