如何使用 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)
我有一个 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)