一个简单的VB代码,用于分割数据

这段VBA代码用于遍历工作簿中的每个工作表,对A1单元格开始的区域进行处理。它首先清除数组,然后读取工作表数据,替换特定字符并拆分单元格内容。如果单元格不为空,内容将被写入新数组。最终,新数组的内容会被写回F3单元格开始的位置,创建处理后的数据结构。
摘要由CSDN通过智能技术生成
Sub SplitData()
    Dim NewArr(1 To 200, 1 To 2)
    For Each sht In ThisWorkbook.Worksheets
       Erase NewArr
       arr = sht.[a1].CurrentRegion
       'arr = sht.Range("a1:b10")
       
       If (IsEmpty(arr)) Then            '空表处理
          sht.Delete
       Else
                  
           NewArr(1, 1) = arr(1, 1)       '拷贝表头
           NewArr(1, 2) = arr(1, 2)
           k = 2
           
           For i = 2 To UBound(arr, 1)
           
               adt = Replace(arr(i, 2), ",", "、")  '替换
               adt = Replace(adt, "。", "、")
               adt = Replace(adt, ".", "、")
               adt = Replace(adt, ",", "、")
               
               If (Len(adt) > 0) Then               '单元格不为空
               
                   adt_list = Split(adt, "、")       '拆分
                   
                   For j = 0 To UBound(adt_list, 1)   '循环写入
                   
                        If (Len(adt_list(j)) > 0) Then  '避免开头和结尾是标点
                        
                            NewArr(k, 1) = arr(i, 1)
                            NewArr(k, 2) = adt_list(j)
                            k = k + 1
                            
                        End If
                        
                   Next
                   
               End If
               
           Next
           
           sht.[f3].Resize(UBound(NewArr, 1), 2) = NewArr
           
       End If
       
     Next
    
End Sub

 处理前:
在这里插入图片描述

 处理后:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuntou0906

玛莎拉蒂是我的目标!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值