首页 > 解决方案 > VBA 循环用于分割文本,速度很慢(可能没有响应) 需要一些帮助来改进吗?

问题描述

A1 列内:A10000 全部填充 18 个字符的字符串 例如:AAAAAAAAAAAAAAAAAA

以下 VBA 将帮助根据所需的特定字符长度将它们分成各自的列。但是,由于信息量大,VBA 可能无法响应。在改进方面需要一些帮助吗?

Sub looptest()
    Dim rng As Range
    Dim cCel As Range
    Dim i As Long

Set rng = Range("A1: A10000")

   i = 1


    For Each cCel In rng
        Cells(i, 2).Value = Left(Cells(i, 1).Value, 2)
        Cells(i, 3).Value = Mid(Cells(i, 1).Value, 3, 1)
        Cells(i, 4).Value = Mid(Cells(i, 1).Value, 4, 2)
        Cells(i, 5).Value = Mid(Cells(i, 1).Value, 6, 1)
        Cells(i, 6).Value = Mid(Cells(i, 1).Value, 7, 2)
        Cells(i, 7).Value = Mid(Cells(i, 1).Value, 9, 2)
        Cells(i, 8).Value = Mid(Cells(i, 1).Value, 11, 3)
        Cells(i, 9).Value = Mid(Cells(i, 1).Value, 14, 1)
        Cells(i, 10).Value = Mid(Cells(i, 1).Value, 15, 3)
        Cells(i, 11).Value = Mid(Cells(i, 1).Value, 16, 1)
        i = i + 1
    Next cCel


End Sub

标签: excelvbastringloopssplit

解决方案


在 for 循环之前,添加

Application.ScreenUpdating = False

在那之后,

Application.ScreenUpdating = True

推荐阅读