1、运用VBA.Split() 给字符串分列,选取第一部分
例:“101203\其他货币资金\低于等于3个月的流动性理财存款”,选取“101203”
Sub test()
Dim rows As Integer '声明变量
rows = Range("A1048576").End(xlUp).Row '数据的最下边位置
'Range("c1") = rows
For i = 1 To rows
If (Range("B" & i) = "") Then
Range("B" & i) = Range("A" & i)
Range("C" & i) = rows
Range("A" & i) = VBA.Split(Range("B" & i), "\")(0) '将字符串按“\”分列,取第一部分
End If
Next
End Sub
注:split函数的用法:
Split函数是在处理字符串时常用的一个函数,它的作用是将字符串按特定的字符分开,返回的是一个一维数组,数组的起始下标为0,看下面的例子
Sub test()
Dim arr,brr,s,m,n,y
s = "abc,d,e,f,g"
arr = Split(s,",") '结果是一个包含5个项的一维数组
m = Split(s,")(0) '令m为数据的第1个项,为abc brr =Split(s,",2)将s以逗号分为2项,brr(0)=abc,brr(1)="d,e,f,g"
n = Split(s,",2)(0) '令n=abc
y = Split(s,",2)(1) '令y="d,e,f,g"
End Sub
现在有一个字符串"abc,d,e,f.g,h",arr = Split(s,",")就是将字符串以","为分隔符分开,返回的arr是一个一维数组,arr(0)-abc,arr(1)=d,arr(2)=e,arr()=f,arr(4)=-g,当然在这里split(s,",")(0)与arr(0)是等价的,将split(s",")直接看成一个数组,(0)表示这个数组的第1项。如果不想将s全部分开,可以在分隔符后面再加上个参数来表示你想分成几份。比如split(s,",2)这里的2就表示将s分成2份即可,返回结果是"abc"和"d,e,fg",如果是split(s,",3)那么结果就是"abc","d","e,f,g"三个值了。
2、将excel 中的每张sheet单独保存成一个文件
Sub test()
Dim sht As Worksheet '声明变量
Application.ScreenUpdating = False '关闭屏幕更新
For Each sht In Sheets
sht.Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\Desktop\拆分后文件\" & sht.Name & ".xlsx" '另存的位置
ActiveWorkbook.Close
Next
Application.ScreenUpdating = True '开启屏幕更新
End Sub