首页 > 解决方案 > 元素未从数组中获取值

问题描述

我正在研究将数据从特定列复制到另一个工作表的宏,并且我试图使用数组来获取列名,因为它们将来可能会发生变化。出于某种原因,当单步执行循环填充数组时,我可以看到值正在正确加载,但是当我进入 For Each 循环时,元素始终为空。我觉得有一个简单的修复,但我就是看不到它。

我试过移动东西并将元素声明为变体,但同样的过程在另一个宏中工作得很好,所以我很难过。


Dim rows As Integer
Dim OneZeroCol As Integer
Dim FromCol As Integer
Dim ToCol As Integer
Dim i As Integer
Dim ADcols As Integer
Dim el As Integer
Dim element As Variant

Dim colArray() As String

el = AD.Cells(1, Columns.Count).End(xlToLeft).Column
OneZeroCol = AD.Cells.Find(What:="1/0", SearchDirection:=xlPrevious).Column
rows = (TD.Cells.Find(What:="*", SearchDirection:=xlPrevious).Row)

ReDim colArray(el)

'load values into array
For i = 1 To OneZeroCol - 1
    colArray(i) = AD.Cells(1, i).Value
Next i

'ERROR: ELEMENT COMING THROUGH EMPTY?? VALUE LOAD IS SUCCESSFUL BUT FAILS IN LOOP 18-10-19

'loop to copy data
For Each element In colArray
    FromCol = TD.Range("1:1").Find(element, LookIn:=xlValues, lookat:=xlWhole).Column
    ToCol = AD.Range("1:1").Find(element, LookIn:=xlValues, lookat:=xlWhole).Column

    For i = 2 To rows

        AD.Cells(i, ToCol).Value = TD.Cells(i, FromCol).Value

    Next i
Next element

End Sub

标签: excelvba

解决方案


推荐阅读