首页 > 解决方案 > VBA excel循环遍历一个范围以从列中拆分名称

问题描述

我正在尝试遍历 excel 中的整个范围(列),以通过在“_”处拆分来给我一个 ID。此代码适用于单行,但我不确定如何使其循环遍历整行。文件名是 A 列,如下所示。我需要遍历 276 行。这显然是在复制 2-276 的相同内容,因为我只选择 C2 作为范围。它将为所有内容输出 D28NQ5。如果我将范围更改为 C:C,它将不起作用。

Sub splitName()
  Dim ImageName As String
  Dim newImageName As String
  Dim ImageNameParts() As String
  Dim ID As String
  Dim sourceSheet As Worksheet

  Columns("A:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
  Range("B1").Value = "ID Temp"
  Range("A1").Value = "ID"

  ImageName = Range("C2")
  newImageName = Replace(ImageName, ".", "_")
  ImageNameParts = split(newImageName, "_")

  Range("B2:B276").Value = ImageNameParts(4)

  SensorID = Right(ImageNameParts(4), 6)

  Range("A2:A276").Value = ID

  Set sourceSheet = Sheet1
  sourceSheet.Range("B:C").EntireColumn.Delete

End Sub

文件名

CV42231.A.10.1_BAM92D28NQ5.czi - 场景 #0.txt

CV42231.A.10.1_BAM92D28NQ5.czi - 场景 #0.txt

CV42231.A.10.1_BAM92D28NQ5.czi - 场景 #1.txt

CV42231.A.10.1_BAM92D28NQ5.czi - 场景 #1.txt

CV42231.A.10.1_BAM92D28NQ5.czi - 场景 #0.txt

CV42231.A.10.1_BAM92D28NP2.czi - 场景 #0.txt

CV42231.A.10.1_BAM92D28NP2.czi - 场景 #1.txt

CV42231.A.10.1_BAM92D28NP2.czi - 场景 #1.txt

标签: excelvbastringloops

解决方案


推荐阅读