
假设我们单元格里是这样的内容,
我们需要根据这个单元格的内容,输出一行一行类似这样:

下面的代码就是实现这个功能的
Option Explicit
' tarStr-需要解析的字符串
' startOne-默认取1,表示这个字符串从第1个开始解析
Private Function SplitString(ByVal tarStr As String, ByVal startOne As Integer)
Dim splitStr As String '需要解析的字符串
Dim lenSplitStr As Integer '需要解析的字符串的长度
Dim endStrNum As Integer '遍历需要解析的字符串每一个字符的标号
Dim startStrNum As Integer '每一行内容的起始标号
Dim singleProduct As String '输出的字符串内容
Dim strChars() '遍历字符串需要的数组
splitStr = Replace(tarStr, Chr(13), "")
startStrNum = startOne
lenSplitStr = Len(splitStr)
ReDim strChars(1 To lenSplitStr)
For endStrNum = 1 To lenSplitStr
strChars(endStrNum) = Mid(splitStr, endStrNum, 1)
'如果这个字符是换行符,说明这个字符串有换行
'endStrNum就是这个换行符的位置
If strChars(endStrNum) = Chr(10) Then
singleProduct = Mid(splitStr, startStrNum, endStrNum - startStrNum)
singleProduct = Replace(singleProduct, Chr(13), "")
singleProduct = Replace(singleProduct, Chr(10), "")
'把新的起始位置赋值给startStrNum变量
startStrNum = endStrNum + 1
Debug.Print "product:" & singleProduct
End If
Next endStrNum
'输出最后一行的内容
singleProduct = Mid(splitStr, startStrNum, endStrNum)
singleProduct = Replace(singleProduct, Chr(13), "")
singleProduct = Replace(singleProduct, Chr(10), "")
Debug.Print "product:" & singleProduct
End Function
Sub test()
Call SplitString(ThisWorkbook.Sheets("Sheet1").Range("A1").Value, 1)
End Sub
本文介绍了如何使用VBA(Visual Basic for Applications)来模拟WriteLine功能,将单元格中的内容逐行输出,以实现类似控制台打印的效果。通过示例代码,详细展示了具体实现过程。

1609

被折叠的 条评论
为什么被折叠?



