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
我的第一行有 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