如何使用 VBA 从显示在不同列上的换行文本中获取文本

How to get text from wrapped text show on different columns using VBA

我有一个 vba 脚本,可以将数据从一个工作簿复制并粘贴到另一个工作簿。被粘贴的数据是换行的文本。我需要我的 vba 脚本来获取包装文本并将其转换为您在下面看到的内容。

以下是正在复制的包含换行文本的数据。

下面是我希望粘贴到新工作簿时的样子。

下面是我现在的脚本。

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

也许这可以让你继续......

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

如果每个字符由换行符分隔,这会将单元格文本转换为 4 个单元格。请注意此示例从单元格 A1 复制到 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)