vba 实现类似writeLine类似的功能

本文介绍了如何使用VBA(Visual Basic for Applications)来模拟WriteLine功能,将单元格中的内容逐行输出,以实现类似控制台打印的效果。通过示例代码,详细展示了具体实现过程。

假设我们单元格里是这样的内容,

 

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

 下面的代码就是实现这个功能的

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值