引用不同的单元并在VBA中提取子串

时间:2015-10-02 21:30:25

标签: vba excel-vba for-loop foreach substring

我有2张,"报告"和"数据"。在"数据" sheet是A列中的值,如下所示T-Shirt.Adidas.25.110我需要获取原始数据并将它们输入到" Report"表单作为单独的实体。

离。单元格A1将读取" T-Shirt" Cell B1将阅读" Adidas"

这是我到目前为止所拥有的。它是一个声明,但只适用于一行。我不知道如何循环它。

Dim Cell As Object
Dim Data As Range
Dim Report As Range
Set Report = Worksheets("Report").Range("A2", Range("A2").End(xlDown))
Set Data = Worksheets("Data").Range("A2", Range("A2").End(xlDown))

With Report
    .Resize(1, 4) = Split(Worksheets("Data").Range("A2"), ".")
End With

宏需要适用于数据表中的任意数量的对象。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

这是一种循环方式:

Sub test()

Dim Cell As Object
Dim Data As Range
Dim Report As Range
Dim i As Long, TempArray As Variant

Set Data = Worksheets("Data").Range("A2", Worksheets("Data").Range("A2").End(xlDown))
Set Report = Worksheets("Report").Range("A2")

For i = 1 To Data.Count
    TempArray = Split(Data.Range("A" & i), ".")
    Report.Offset(i - 1).Resize(1, UBound(TempArray) + 1) = TempArray
Next i
Set TempArray = Nothing

End Sub

这样您可以使用数据作为迭代的来源和计数,并且可以根据给定数据中的句点数来概括列。