Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays VBA-将数据从存储阵列复制到图纸阵列时出现问题_Arrays_Excel_Vba_Loops_Copy - Fatal编程技术网

Arrays VBA-将数据从存储阵列复制到图纸阵列时出现问题

Arrays VBA-将数据从存储阵列复制到图纸阵列时出现问题,arrays,excel,vba,loops,copy,Arrays,Excel,Vba,Loops,Copy,我试图在VBA中复制excel中数据表的功能。到目前为止,我已经让代码按我所希望的方式工作,但是当我从临时存储阵列中复制数据时,它会偏移1列和1行 我想不出问题是什么?提前谢谢 Sub DataTableLoop() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Dim CodeRng As Range Dim PasteRng As Range Dim WatchRng A

我试图在VBA中复制excel中数据表的功能。到目前为止,我已经让代码按我所希望的方式工作,但是当我从临时存储阵列中复制数据时,它会偏移1列和1行

我想不出问题是什么?提前谢谢


Sub DataTableLoop()

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim CodeRng As Range
Dim PasteRng As Range
Dim WatchRng As Range
Dim ResultRng As Range
Dim ResultRes As Range
Dim x As Integer
Dim y As Integer
Dim i As Integer
Dim Count As Integer
Dim col As Integer
Dim MyArray As Variant
Dim TempArr As Variant
Dim CodeVar As Range

Set CodeRng = Worksheets("OptionCodes").[CodeTop]
Set PasteRng = Worksheets("OptionCodes").[OptionsCode]
Set WatchRng = Worksheets("OptionCodes").[WatchRange]
Set ResultRng = Worksheets("OptionCodes").[ResultsRange]

col = WatchRng.Columns.Count

x = Worksheets("OptionCodes").[Iterations].Value
y = x - 1
i = 0

Set ResultRes = ResultRng.Resize(x)

ReDim MyArray(x, col)

Do While i <= y

Set CodeVar = CodeRng.Offset(i, 0)

Count = i + 1

Application.StatusBar = "Iteration: " & Count & " of " & x

    CodeVar.Copy
    PasteRng.PasteSpecial Paste:=xlPasteValues

        Application.Calculate
    
    TempArr = WatchRng
    For j = 1 To col
        MyArray(Count, j) = TempArr(1, j)
    Next j
    
i = i + 1

Loop

ResultRes = MyArray

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic

End Sub

子DataTableLoop()
Application.Calculation=xlCalculationManual
Application.ScreenUpdating=False
暗编码范围
暗淡的巴斯滕As范围
变暗监视范围
模糊结果范围
模糊结果作为范围
作为整数的Dim x
Dim y作为整数
作为整数的Dim i
将计数设置为整数
作为整数的Dim col
Dim MyArray作为变体
作为变体的暗TempArr
Dim CodeVar As范围
Set CodeRng=工作表(“选项代码”)。[CodeTop]
Set PasteRng=工作表(“选项代码”)。[选项代码]
设置WatchRng=工作表(“选项代码”)。[WatchRange]
Set ResultRng=工作表(“选项代码”).[ResultsRange]
col=WatchRng.Columns.Count
x=工作表(“选项代码”)[Iterations]。值
y=x-1
i=0
设置ResultRes=ResultRng.Resize(x)
ReDim MyArray(x,列)

Do While i
Redim
在默认情况下是基于0的,因此您的数组实际上比您预期的大1行和1列。要基于1,需要指定下限

ReDim MyArray(1 To x, 1 To col)