gpt4 book ai didi

arrays - Excel VBA : Populating Staggered Ranges with 2d Array data

转载 作者:行者123 更新时间:2023-12-02 18:53:05 26 4
gpt4 key购买 nike


我目前正在寻找一种更有效的方法,通过 VBA,将信息从 Sub 中的二维数组传输到 Excel 工作簿中的一组交错范围中。我将我需要的内容提炼到下面的示例中,并附有代码;任何帮助将不胜感激。

   我已经链接了描述我正在使用的示例(输入、数组和输出)的图像,并编写了我在下面使用的代码示例。为了简单起见,我们在工作簿中将“输入表”定义为 Sheet1,将“输出表”定义为 Sheet2:

Input Sheet

  Option Explicit

Sub TransferData()
Dim myArray as Variant 'Define the array to hold the data.
Dim i as integer 'Define a generic loop counter variable.

myArray = Sheet1.Range("A1:F7") 'Pulls all the relevant data into the array.

    myArray 现在看起来与范围完全相同。 (我会发布第三个链接,但我需要首先赢得更多代表)。

   我想将数据传输到我的输出文件中,使其看起来像这样:

Output Sheet

   以下是我目前处理这种情况的方法:

    For i = 1 to ubound(myArray)
Sheet2.Cells(i,1) = myArray(i,1)
Sheet2.Cells(i,3) = myArray(i,2)
Sheet2.Cells(i,6) = myArray(i,3)
Sheet2.Cells(i,7) = myArray(i,4)
Sheet2.Cells(i,8) = myArray(i,5)
Sheet2.Cells(i,9) = myArray(i,6)
Next i
End Sub

   我的问题是这样的;有没有一种方法可以将数据从数组传输到交错范围,其方式类似于我抓取数组的方式;一次一个范围?例如,类似以下内容:

Sheet2.Range("A1:A8") = myArray(1 to 7, 1)  'Note: this is total pseudocode
Sheet2.Range("C1:C8") = myArray(1 to 7, 2) 'Note: this is total pseudocode

等等...等等...

   到目前为止,我相信我已经自学了相当多的 VBA,但我绝对不知道所有内容,这是我需要帮助的地方。我正在尝试最大程度地减少 VBA 对工作表的写入量;他们确实付出了代价。

   非常感谢任何帮助。

  谢谢!

最佳答案

“复制并粘贴”值可能会快一些。显然,您需要对此进行概括以适应您的目的,但此代码适用于您提供的示例:

Sub TransferData()

Sheet3.Range("A1:A7") = Sheet1.Range("A1:A7").Value
Sheet3.Range("C1:C7") = Sheet1.Range("B1:B7").Value
Sheet3.Range("F1:I7") = Sheet1.Range("C1:F7").Value

End Sub

关于arrays - Excel VBA : Populating Staggered Ranges with 2d Array data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6738716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com