Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7283|回复: 4

如何用VBA分解下面的字符串,每3个1组,去掉;和空格。谢谢!

[复制链接]
发表于 2020-11-30 14:40 | 显示全部楼层 |阅读模式
1学分
QUA:AQ0    LRV:AV4    HER:A56    AUS:A9E    BLB:B1P
TPL:B36    COC:C00    MOT:DF7    ASG:EA0    LKL:EH0
GKS:EP0    RCO:ER6    LDO:ES0    LKA:EV0    WAR:EW0
AAU:E0A    SVO:FA0    MDS:FM0    QGM:FQ0    PGA:FT0
FZS:F0A    VOK:GA0    KOM:GB0    HAG:GH0    STT:GJ0
ASM:GM0    PAM:GP0    APP:GS0    EST:GZ0    GSP:G1C
CPA:IT3    CPB:IU3    CPC:IV3    CPD:IW3    MOA:IX1
REI:I54    RAO:I8Z    SKA:JX0    BAT:J2D    KSU:KA2
KUH:KK1    HUD:KS0    KAR:K8L    LEA:L0L    LDD:NJ0
TSP:NT0    SIB:N5W    ALG:QE1    SEA:QI3    KAS:QK1
SCT:QL1    LCP:QQ2    KMP:QR8    TVE:QV0    ZAB:QW0
LEN:QZ7    VOS:Q1A    GMO:T8Y    ESS:UF7    RAD:U34
INS:U5A    ZTR:VH0    FGS:VL1    EIL:VT4
REL:V0A       :YEC    FAD:0FS    GKV:0JK    ASY:0K4
KBV:0M5    SZU:0NA    HIA:0N1    ZSS:0RC    SAU:0SX
BTA:0XF    GKH:0YG    KLZ:0Y5    AGS:04E    KRS:1A2
DAE:1BB    AHV:1D0    TYP:1ER    RER:1G5    BAH:1KJ
BAV:1LF    ABR:1PR    FFW:1P0    SIZ:1QC    TWU:1SB
BOW:1S1    AED:1TQ    VBK:1T2    TWL:1VG    LRA:1XW
ATA:1X0    KRM:1Z0    LSS:2C5    CHA:2H9    SFS:2K5
FRI:2V5    TYZ:2Z8    ZKV:3B3    DEI:3FU    KSI:3G0
SIE:3L5    SZL:3M3    HIS:3ND    KOH:3Q1    SSR:3Y0
SIH:4A0    AGM:4BD    KMS:4D0    SDH:4E2    WSS:4GF
TKV:4I3    SSH:4KC    IRS:4L6    AIB:4UE    BSV:4V0
SAB:4X3    ZIE:4ZB    KSA:5C0    TRF:5D1    HES:5J0
LAC:5K0    EIH:5MU    ASR:5RU    ASL:5SL    KOV:5ZF
FEU:6A0    ZKS:6EA    MAS:6E3    BBO:6FA    DFO:6F0
SRH:6I0    AWV:6K8    HIM:6NJ    FIT:6RB    HEB:6V1
KZV:6W7    ASE:6XE    EDW:7AL    CDW:7D5    WSA:7E0
SAG:7F9    FVS:7G0    LUM:7HB    RDK:7K6    SNA:7L8
LOR:7P1    NAV:7UG    ESI:7W1    EPH:7X2    SPU:7Y0
LKB:73A    LKC:76A    LIA:8G4    HSW:8IT    FLS:8K4
SBR:8SP    GRA:8T6    SWR:8X1    SNH:8Y3    MKU:8Z4
HKA:9AQ    GEN:9G7    RAU:9JC    ZUH:9M0    SWZ:9PA
SGK:9P9    GEF:9R0    MFA:9S8    LSE:9VD    AUD:9WC
VTV:9ZX

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2020-12-3 20:07 | 显示全部楼层
“每3个1组,去掉;和空格”,举例说明下呢,第一组应该是什么样子的。
回复

使用道具 举报

发表于 2021-1-25 22:13 来自手机 | 显示全部楼层
第一次回帖,之前一直都是看和学习,只会用最笨的方法,还请大神们帮忙指出写的有问题的地方,持续学习中
Sub 拆分()

  Dim i As Integer, j As Integer, n As Integer, str As String
  ActiveSheet.Cells.NumberFormat = "@"
  For n = 1 To Range("A1").End(xlDown).Row
  j = 2
  For i = 1 To Len(Cells(n, 1))
    str = Mid(Cells(n, 1), i, 1)
    If (Asc(str) >= 65 And Asc(str) <= 90) Or (Asc(str) >= 97 And Asc(str) <= 122) Or (IsNumeric(str) = True) Then
      Cells(n, j) = Cells(n, j) & str
      If Len(Cells(n, j)) = 3 Then
      j = j + 1
      End If
    End If
  Next
  
  Next

End Sub
mmexport1611583952298.jpg
mmexport1611583956995.jpg
回复

使用道具 举报

发表于 2021-1-27 17:17 | 显示全部楼层
凑个热闹
  1. Sub sfsf()
  2. Dim sr, x, st, y, i, arr()
  3. Columns("b:bb") = ""
  4. Set regx = CreateObject("VBScript.RegExp")
  5. For x = 2 To Range("a65536").End(xlUp).Row
  6.     sr = Cells(x, 1)
  7.     regx.Global = True
  8.     regx.Pattern = "\W"
  9.     st = regx.Replace(sr, "")
  10.       i = Len(st) / 3 - 1
  11.       ReDim Preserve arr(0 To i)
  12.             For y = 0 To i Step 1
  13.             arr(y) = Mid(st, y * 3 + 1, 3)
  14.             Next y
  15.      Cells(x, 2).Resize(1, UBound(arr) + 1) = arr
  16.      Erase arr
  17. Next x
  18. End Sub
复制代码


工作簿1.rar

17.59 KB, 下载次数: 6

回复

使用道具 举报

发表于 2021-1-31 18:17 | 显示全部楼层
楼主数据已用符号分好了组,针对诉求结果是有规律的,这样代码就会简洁很多
  1. Sub Yuba()
  2.     arr = [a1].CurrentRegion
  3.     For i = 1 To UBound(arr)
  4.         ar = Split(Application.Transpose(Application.Trim(Replace(arr(i, 1), ":", " "))))
  5.         Cells(i, 2).Resize(, UBound(ar) + 1) = ar
  6.     Next
  7. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 23:50 , Processed in 0.299353 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表