我是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个值,但我无法使代码正常工作