Excel VBA: 用数组替换第一行

Excel VBA: Replace first row by an array

我的第一行有 100 个单元格,我创建了一个字符串数组,它表示新行的内容。 我想用 VBA 中数组的内容替换所有第一行的内容,我该怎么做?

假设您的数组名为 myArray,这样做就足够了:

For j = LBound(myArray) To UBound(myArray)
    Sheets("your sheet").Cells(1,j+1).Value = myArray(j)
Next j 

函数 LBound()UBound() 分别返回数组的第一个和最后一个索引。

请注意,在撰写 Cells(1,j+1) 时,我假设了两件重要的事情:

1) 您的起始索引从 0 开始,所以我想从第 1 列 (j+1 = 0+1 = 1) 开始插入值。

2) 您想要覆盖第一行(因为行索引等于 1)。

您可能想要对此进行自定义,例如创建独立索引 - 当我说 "independent" 时,我的意思是 "not depending on the lower and the upper bound of your array, nor being hard-coded like I did for the " 第 1 行"。

您可以在一行中读写范围和数组。它比使用循环更有效。

注意:数组必须是二维的才能写入范围。

Public Sub ReadToArray()

    ' Create dynamic array
    Dim StudentMarks() As Variant

    ' Read values into array from 100 cells in row 1
    StudentMarks = Sheets("Sheet1").Range("A1:CV1").Value

    ' Do something with array

    ' Write the values back to sheet
    Sheets("Sheet1").Range("A1:CV1").Value = StudentMarks

End Sub