如何遍历列并将每列中的某些值存储到它们自己的变量中?

时间:2019-07-15 15:09:30

标签: excel vba

我是VBA的新手,正在对数据进行排序。我试图遍历各列,并从各列中提取值并将它们存储在变量中。我已经为另一个项目做到了这一点,只需为每列分别进行即可。这是我以前使用过的代码,并且可以正常工作,但是现在我需要遍历36列,而当我尝试对全部36列这样做时,VBA会崩溃。我想找到一种方法来遍历这些列也许VBA不会崩溃。

Sub DepolarizedPotentialValues()

    Dim ChartCells1 As Range
    Dim Count1 As Range
    Dim Cells1 As Range
    Dim Number1 As Range
    Dim Columns1 As Range
    Dim xrng As Range
    Dim Temp1 As Range
    Dim Temp2 As Range
    Dim Temp3 As Range

    DataSheet.Activate

    Set Number1 = Range("AF2")
    Set Cells1 = Range("AF2", Range("AF2").End(xlDown))
    Set ChartCells1 = Range("AF1:AF2").Offset(0, -12)

    For Each Count1 In Cells1
        If Count1.Value <> Number1 Then
            Set ChartCells1 = Union(ChartCells1, Count1.Offset(0, -12))
            Set Number1 = Count1
        End If
    Next Count1

    Dim ChartCells2 As Range
    Dim Count2 As Range
    Dim Cells2 As Range
    Dim Number2 As Range
    Dim Columns2 As Range

    Set Number2 = Range("AG2")
    Set Cells2 = Range("AG2", Range("AG2").End(xlDown))
    Set ChartCells2 = Range("AG1:AG2").Offset(0, -12)

    For Each Count2 In Cells2
        If Count2.Value <> Number2 Then
            Set ChartCells2 = Union(ChartCells2, Count2.Offset(0, -12))
            Set Number2 = Count2
        End If
    Next Count2

    Dim ChartCells3 As Range
    Dim Count3 As Range
    Dim Cells3 As Range
    Dim Number3 As Range
    Dim Columns3 As Range

    Set Number3 = Range("AH2")
    Set Cells3 = Range("AH2", Range("AH2").End(xlDown))
    Set ChartCells3 = Range("AH1:AH2").Offset(0, -12)

    For Each Count3 In Cells3
        If Count3.Value <> Number3 Then
            Set ChartCells3 = Union(ChartCells3, Count3.Offset(0, -12))
            Set Number3 = Count3
        End If
    Next Count3

    Set xrng = Range("A2", Range("A2").End(xlDown))
    Set Temp1 = Range("AR1", Range("AR1").End(xlDown))
    Set Temp2 = Range("AS1", Range("AS1").End(xlDown))
    Set Temp3 = Range("AT1", Range("AT1").End(xlDown))

    DataSheet.Activate

    Dim Chart1 As Chart
    Set Chart1 = Charts.Add

这是有效的代码,但是当我将其添加到ChartCells36时,它完全崩溃

我希望每列存储3个值,但我无法使代码正常工作

0 个答案:

没有答案